<?php
/* Driver template for the LEMON parser generator.
*/

/**
 * This can be used to store both the string representation of
 * a token, and any useful meta-data associated with the token.
 *
 * meta-data should be stored as an array
 */
class c_lang_yyToken implements ArrayAccess
{
    public $string = '';
    public $metadata = array();

    function __construct($s, $m = array())
    {
        if ($s instanceof c_lang_yyToken) {
            $this->string = $s->string;
            $this->metadata = $s->metadata;
        } else {
            $this->string = (string) $s;
            if ($m instanceof c_lang_yyToken) {
                $this->metadata = $m->metadata;
            } elseif (is_array($m)) {
                $this->metadata = $m;
            }
        }
    }

    function __toString()
    {
        return $this->_string;
    }

    function offsetExists($offset)
    {
        return isset($this->metadata[$offset]);
    }

    function offsetGet($offset)
    {
        return $this->metadata[$offset];
    }

    function offsetSet($offset, $value)
    {
        if ($offset === null) {
            if (isset($value[0])) {
                $x = ($value instanceof c_lang_yyToken) ?
                    $value->metadata : $value;
                $this->metadata = array_merge($this->metadata, $x);
                return;
            }
            $offset = count($this->metadata);
        }
        if ($value === null) {
            return;
        }
        if ($value instanceof c_lang_yyToken) {
            $this->string .= $value->string;
            $this->metadata[$offset] = $value->metadata;
        } else {
            $this->metadata[$offset] = $value;
        }
    }

    function offsetUnset($offset)
    {
        unset($this->metadata[$offset]);
    }
}

// code external to the class is included here
#line 4 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"

    global $CFG;
    require_once($CFG->dirroot . '/blocks/formal_langs/tokens_base.php');
 #line 81 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"

/** The following structure represents a single element of the
 * parser's stack.  Information stored includes:
 *
 *   +  The state number for the parser at this level of the stack.
 *
 *   +  The value of the token stored at this level of the stack.
 *      (In other words, the "major" token.)
 *
 *   +  The semantic value stored at this level of the stack.  This is
 *      the information used by the action routines in the grammar.
 *      It is sometimes called the "minor" token.
 */
class c_lang_yyStackEntry
{
    public $stateno;       /* The state-number */
    public $major;         /* The major token value.  This is the code
                     ** number for the token at this stack level */
    public $minor; /* The user-supplied minor token value.  This
                     ** is the value of the token  */
};

// any extra class_declaration (extends/implements) are defined here
/**
 * The state of the parser is completely contained in an instance of
 * the following structure
 */
class c_lang_yyParser
{
/* First off, code is included which follows the "include_class" declaration
** in the input file. */
#line 9 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"

    public $error;
    public $ast;
    public $success = false;

    public $dump_info = '';

    private $debug_mode = false;
    private $node_num = 0;

    public function set_debug_mode($flag) {
        $this->debug_mode = $flag;
    }

    public function dump() {
        if ($this->debug_mode) {
            ob_start();
            $this->dump_info .= "Stack dump:\n";
            var_dump($this->yystack);
            $this->dump_info .= ob_get_contents();
            ob_end_clean();

            ob_start();
            $this->dump_info .= "$this->list dump:\n";
            var_dump($this->ast);
            $this->dump_info .= ob_get_contents();
            ob_end_clean();

            ob_start();
            $this->dump_info .= "$this->error dump:\n";
            var_dump($this->error);
            $this->dump_info .= ob_get_contents();
            ob_end_clean();
        }
    }

    public function process_token($token) {
        $this->doParse($token->type(), $token);
    }
#line 154 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"

/* Next is all token values, in a form suitable for use by makeheaders.
** This section will be null unless lemon is run with the -m switch.
*/
/* 
** These constants (all generated automatically by the parser generator)
** specify the various kinds of tokens (terminals) that the parser
** understands. 
**
** Each symbol here is a terminal symbol in the grammar.
*/
    const C_PRAGMA                         =  1;
    const C_IF                             =  2;
    const C_ELSE                           =  3;
    const C_IDENTIFIER                     =  4;
    const C_CONSTANT                       =  5;
    const C_STRING_LITERAL                 =  6;
    const C_LPAREN                         =  7;
    const C_RPAREN                         =  8;
    const C_LSQUARE                        =  9;
    const C_RSQUARE                        = 10;
    const C_PERIOD                         = 11;
    const C_PTR_OP                         = 12;
    const C_INC_OP                         = 13;
    const C_DEC_OP                         = 14;
    const C_COMMA                          = 15;
    const C_SIZEOF                         = 16;
    const C_AMP                            = 17;
    const C_STAR                           = 18;
    const C_PLUS                           = 19;
    const C_MINUS                          = 20;
    const C_TILDE                          = 21;
    const C_EXCLAM                         = 22;
    const C_SLASH                          = 23;
    const C_PERCENT                        = 24;
    const C_LEFT_OP                        = 25;
    const C_RIGHT_OP                       = 26;
    const C_LANGLE                         = 27;
    const C_RANGLE                         = 28;
    const C_LE_OP                          = 29;
    const C_GE_OP                          = 30;
    const C_EQ_OP                          = 31;
    const C_NE_OP                          = 32;
    const C_CARET                          = 33;
    const C_PIPE                           = 34;
    const C_AND_OP                         = 35;
    const C_OR_OP                          = 36;
    const C_QUESTION                       = 37;
    const C_COLON                          = 38;
    const C_EQUALS                         = 39;
    const C_MUL_ASSIGN                     = 40;
    const C_DIV_ASSIGN                     = 41;
    const C_MOD_ASSIGN                     = 42;
    const C_ADD_ASSIGN                     = 43;
    const C_SUB_ASSIGN                     = 44;
    const C_LEFT_ASSIGN                    = 45;
    const C_RIGHT_ASSIGN                   = 46;
    const C_AND_ASSIGN                     = 47;
    const C_XOR_ASSIGN                     = 48;
    const C_OR_ASSIGN                      = 49;
    const C_SEMIC                          = 50;
    const C_RCURLY                         = 51;
    const C_TYPEDEF                        = 52;
    const C_EXTERN                         = 53;
    const C_STATIC                         = 54;
    const C_AUTO                           = 55;
    const C_REGISTER                       = 56;
    const C_VOID                           = 57;
    const C_CHAR                           = 58;
    const C_SHORT                          = 59;
    const C_INT                            = 60;
    const C_LONG                           = 61;
    const C_FLOAT                          = 62;
    const C_DOUBLE                         = 63;
    const C_SIGNED                         = 64;
    const C_UNSIGNED                       = 65;
    const C_TYPE_NAME                      = 66;
    const C_LCURLY                         = 67;
    const C_STRUCT                         = 68;
    const C_UNION                          = 69;
    const C_ENUM                           = 70;
    const C_CONST                          = 71;
    const C_VOLATILE                       = 72;
    const C_ELLIPSIS                       = 73;
    const C_CASE                           = 74;
    const C_DEFAULT                        = 75;
    const C_SWITCH                         = 76;
    const C_WHILE                          = 77;
    const C_DO                             = 78;
    const C_FOR                            = 79;
    const C_GOTO                           = 80;
    const C_CONTINUE                       = 81;
    const C_BREAK                          = 82;
    const C_RETURN                         = 83;
    const YY_NO_ACTION = 571;
    const YY_ACCEPT_ACTION = 570;
    const YY_ERROR_ACTION = 569;

/* Next are that tables used to determine what action to take based on the
** current state and lookahead token.  These tables are used to implement
** functions that take a state number and lookahead value and return an
** action integer.  
**
** Suppose the action integer is N.  Then the action is determined as
** follows
**
**   0 <= N < YYNSTATE                  Shift N.  That is, push the lookahead
**                                      token onto the stack and goto state N.
**
**   YYNSTATE <= N < YYNSTATE+YYNRULE   Reduce by rule N-YYNSTATE.
**
**   N == YYNSTATE+YYNRULE              A syntax error has occurred.
**
**   N == YYNSTATE+YYNRULE+1            The parser accepts its input.
**
**   N == YYNSTATE+YYNRULE+2            No such action.  Denotes unused
**                                      slots in the yy_action[] table.
**
** The action table is constructed as a single large table named yy_action[].
** Given state S and lookahead X, the action is computed as
**
**      yy_action[ yy_shift_ofst[S] + X ]
**
** If the index value yy_shift_ofst[S]+X is out of range or if the value
** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]
** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table
** and that yy_default[S] should be used instead.  
**
** The formula above is for computing the action when the lookahead is
** a terminal symbol.  If the lookahead is a non-terminal (as occurs after
** a reduce action) then the yy_reduce_ofst[] array is used in place of
** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of
** YY_SHIFT_USE_DFLT.
**
** The following are the tables generated in this section:
**
**  yy_action[]        A single table containing all actions.
**  yy_lookahead[]     A table containing the lookahead for each entry in
**                     yy_action.  Used to detect hash collisions.
**  yy_shift_ofst[]    For each state, the offset into yy_action for
**                     shifting terminals.
**  yy_reduce_ofst[]   For each state, the offset into yy_action for
**                     shifting non-terminals after a reduce.
**  yy_default[]       Default action for each state.
*/
    const YY_SZ_ACTTAB = 2381;
static public $yy_action = array(
 /*     0 */   166,   77,  153,  228,  258,    4,   80,   79,   23,   58,
 /*    10 */    57,   88,   86,   81,   87,  244,  248,  221,  251,  250,
 /*    20 */   264,  302,  301,  304,  305,  308,  325,  327,  329,  328,
 /*    30 */   313,  312,  318,  331,  346,  350,    1,  335,  334,  119,
 /*    40 */   324,  295,   65,   64,   62,   63,   72,   71,  213,  226,
 /*    50 */   302,  301,  304,  305,  308,  325,  327,  329,  328,  313,
 /*    60 */   312,  318,  331,  346,  350,    1,  335,  334,  119,  324,
 /*    70 */   295,  279,   38,  168,  148,  147,   10,  151,  161,  155,
 /*    80 */   157,   22,  166,  100,  153,  228,  258,    4,  204,  205,
 /*    90 */   343,  110,   21,   88,   86,  262,   87,  244,  248,  221,
 /*   100 */   251,  250,  264,  302,  301,  304,  305,  308,  325,  327,
 /*   110 */   329,  328,  313,  312,  318,  331,  346,  350,    1,  335,
 /*   120 */   334,  119,  324,  295,  307,  181,  260,   43,  330,   33,
 /*   130 */   213,  242,  302,  301,  304,  305,  308,  325,  327,  329,
 /*   140 */   328,  313,  312,  318,  331,  346,  350,    1,  335,  334,
 /*   150 */   119,  324,  295,  272,   38,  168,  148,  147,   10,  151,
 /*   160 */   161,  155,  157,   22,   55,  142,   32,  287,  259,  132,
 /*   170 */   102,   94,  196,   98,   78,  212,   93,  106,  141,  136,
 /*   180 */   105,  133,  186,  180,  175,  172,  124,  187,   97,   36,
 /*   190 */   225,   83,  263,   66,   67,   68,  342,   36,  101,  344,
 /*   200 */   349,  130,  325,  327,  329,  328,  313,  312,  318,  331,
 /*   210 */   346,  350,   42,  335,  334,  119,  324,  295,  174,  224,
 /*   220 */   199,  200,  201,  208,  209,  216,    6,    2,  142,  324,
 /*   230 */   295,  259,  132,  102,  306,  196,   98,   78,  212,  150,
 /*   240 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*   250 */   187,   99,  115,  223,   83,  179,   66,   67,   68,  336,
 /*   260 */    90,  288,  344,  349,  130,  325,  327,  329,  328,  313,
 /*   270 */   312,  318,  331,  346,  350,  303,  335,  334,  119,  324,
 /*   280 */   295,   61,  224,  199,  200,  201,  208,  209,  216,    5,
 /*   290 */   227,  228,  258,    4,  283,  237,  231,  176,  307,   88,
 /*   300 */    86,   92,   87,  244,  248,  221,  251,  250,  264,   99,
 /*   310 */   115,  166,   93,  153,  228,  258,    4,   49,   89,   34,
 /*   320 */    75,   76,   88,   86,  319,   87,  244,  248,  221,  251,
 /*   330 */   250,  264,  274,  317,   66,   67,   68,   46,  142,   33,
 /*   340 */   344,  349,  130,  325,  327,  329,  328,  313,  312,  318,
 /*   350 */   331,  346,  350,  340,  335,  334,  119,  324,  295,  213,
 /*   360 */   222,    9,  163,  225,   83,  261,   66,   67,   68,   36,
 /*   370 */   152,   36,  344,  349,  130,   25,    1,   29,   28,  158,
 /*   380 */   159,  316,  315,   38,  168,  148,  147,   10,  151,  161,
 /*   390 */   155,  157,   22,  166,  235,  153,  228,  258,    4,  101,
 /*   400 */    53,   45,   27,   31,   88,   86,  198,   87,  244,  248,
 /*   410 */   221,  251,  250,  264,  166,  345,  153,  228,  258,    4,
 /*   420 */   307,   59,   40,   92,   17,   88,   86,  300,   87,  244,
 /*   430 */   248,  221,  251,  250,  264,  296,  297,  144,  259,   15,
 /*   440 */   102,  213,  229,  192,   78,  212,   36,  106,  141,  136,
 /*   450 */   105,  133,  186,  180,  175,  172,  124,  278,    1,  291,
 /*   460 */    30,   26,  213,  109,  293,   38,  168,  148,  147,   10,
 /*   470 */   151,  161,  155,  157,   22,  259,  255,  102,   37,    1,
 /*   480 */   192,   78,  212,   36,  106,  140,   38,  168,  148,  147,
 /*   490 */    10,  151,  161,  155,  157,   22,    8,  183,  118,  293,
 /*   500 */   259,  114,  102,   36,  196,   98,   78,  212,  173,  106,
 /*   510 */   141,  136,  105,  133,  186,  180,  175,  172,  124,  187,
 /*   520 */    82,  269,   66,   67,   68,   52,   73,   74,  344,  349,
 /*   530 */   130,  344,  349,  130,   23,  259,   91,  102,   11,   47,
 /*   540 */   192,   78,  314,  183,  298,   36,  259,  114,  102,   36,
 /*   550 */   196,   98,   78,  212,  156,  106,  141,  136,  105,  133,
 /*   560 */   186,  180,  175,  172,  124,  187,  307,   14,  294,   43,
 /*   570 */   282,   33,   73,   74,   36,  170,  112,  344,  349,  130,
 /*   580 */    93,   56,   91,  116,  256,  259,  132,  102,   39,  196,
 /*   590 */    98,   78,  212,  254,  106,  141,  136,  105,  133,  186,
 /*   600 */   180,  175,  172,  124,  187,  259,   48,  102,   60,    7,
 /*   610 */   192,   78,  191,  277,  302,  301,  304,  305,  308,  325,
 /*   620 */   327,  329,  328,  313,  312,  318,  331,  346,  350,  266,
 /*   630 */   335,  334,  119,  324,  295,   12,  197,  199,  200,  201,
 /*   640 */   208,  209,  216,  259,  132,  102,  252,  196,   98,   78,
 /*   650 */   212,   13,  106,  141,  136,  105,  133,  186,  180,  175,
 /*   660 */   172,  124,  187,  245,  289,  259,  132,  102,   96,  196,
 /*   670 */    98,   78,  212,  276,  106,  141,  136,  105,  133,  186,
 /*   680 */   180,  175,  172,  124,  187,  259,   35,  102,  116,  366,
 /*   690 */   192,   78,  194,  299,  169,  199,  200,  201,  208,  209,
 /*   700 */   216,  211,  210,  215,  219,  218,  202,  203,  207,  206,
 /*   710 */   249,  353,   46,  112,   33,  366,  190,  199,  200,  201,
 /*   720 */   208,  209,  216,   93,  259,  132,  102,  366,  196,   98,
 /*   730 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  180,
 /*   740 */   175,  172,  124,  187,  259,  132,  102,  366,  196,   98,
 /*   750 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  180,
 /*   760 */   175,  172,  124,  187,   82,  366,   66,   67,   68,  366,
 /*   770 */   150,  366,  344,  349,  130,  189,  199,  200,  201,  208,
 /*   780 */   209,  216,   95,  115,  154,  366,  366,  149,  273,  165,
 /*   790 */   110,  366,  366,  366,  366,  243,  199,  200,  201,  208,
 /*   800 */   209,  216,  366,  366,  259,  132,  102,  366,  196,   98,
 /*   810 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  180,
 /*   820 */   175,  172,  124,  187,  259,  132,  102,  366,  196,   98,
 /*   830 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  180,
 /*   840 */   175,  172,  124,  187,   82,  366,   66,   67,   68,  366,
 /*   850 */   366,  366,  344,  349,  130,  230,  199,  200,  201,  208,
 /*   860 */   209,  216,  100,  366,  154,  366,  366,  149,  273,  165,
 /*   870 */   110,  366,  366,  366,  366,  193,  199,  200,  201,  208,
 /*   880 */   209,  216,  366,  259,  132,  102,  366,  196,   98,   78,
 /*   890 */   212,  366,  106,  141,  136,  105,  133,  186,  180,  175,
 /*   900 */   172,  124,  187,  259,  132,  102,  366,  196,   98,   78,
 /*   910 */   212,  366,  106,  141,  136,  105,  133,  186,  180,  175,
 /*   920 */   172,  124,  187,   73,   74,  366,  366,  366,  344,  349,
 /*   930 */   130,   70,  333,   85,  214,  199,  200,  201,  208,  209,
 /*   940 */   216,  259,  366,  102,  366,  366,  192,   78,  212,  366,
 /*   950 */   106,  141,  136,  103,  146,  199,  200,  201,  208,  209,
 /*   960 */   216,  366,  366,  259,  132,  102,  366,  196,   98,   78,
 /*   970 */   212,  366,  106,  141,  136,  105,  133,  186,  180,  175,
 /*   980 */   172,  124,  187,  259,  132,  102,  366,  196,   98,   78,
 /*   990 */   212,  366,  106,  141,  136,  105,  133,  186,  180,  175,
 /*  1000 */   172,  124,  187,  259,  366,  102,  366,  366,  253,   78,
 /*  1010 */    46,  282,   33,  366,  217,  199,  200,  201,  208,  209,
 /*  1020 */   216,   93,  259,  366,  102,  366,  366,  192,   78,  212,
 /*  1030 */   366,  106,  141,  125,  247,  199,  200,  201,  208,  209,
 /*  1040 */   216,  366,  366,  309,   73,   74,  366,  290,  366,  344,
 /*  1050 */   349,  130,   69,  333,   85,  302,  301,  304,  305,  308,
 /*  1060 */   325,  327,  329,  328,  313,  312,  318,  331,  346,  350,
 /*  1070 */   366,  335,  334,  119,  324,  295,  307,  366,  259,   92,
 /*  1080 */   102,  366,  366,  192,   78,  212,  366,  106,  141,  135,
 /*  1090 */    93,  302,  301,  304,  305,  308,  325,  327,  329,  328,
 /*  1100 */   313,  312,  318,  331,  346,  350,  366,  335,  334,  119,
 /*  1110 */   324,  295,  259,  366,  102,  366,  366,  192,   78,  212,
 /*  1120 */   366,  106,  141,  143,  302,  301,  304,  305,  308,  325,
 /*  1130 */   327,  329,  328,  313,  312,  318,  331,  346,  350,  268,
 /*  1140 */   335,  334,  119,  324,  295,  302,  301,  304,  305,  308,
 /*  1150 */   325,  327,  329,  328,  313,  312,  318,  331,  346,  350,
 /*  1160 */   366,  335,  334,  119,  324,  295,  292,  325,  327,  329,
 /*  1170 */   328,  313,  312,  318,  331,  346,  350,  366,  335,  334,
 /*  1180 */   119,  324,  295,  302,  301,  304,  305,  308,  325,  327,
 /*  1190 */   329,  328,  313,  312,  318,  331,  346,  350,  366,  335,
 /*  1200 */   334,  119,  324,  295,  302,  301,  304,  305,  308,  325,
 /*  1210 */   327,  329,  328,  313,  312,  318,  331,  346,  350,  366,
 /*  1220 */   335,  334,  119,  324,  295,  259,  132,  102,  366,  196,
 /*  1230 */    98,   78,  212,  366,  106,  141,  136,  105,  133,  186,
 /*  1240 */   180,  175,  172,  124,  187,  259,  132,  102,  366,  196,
 /*  1250 */    98,   78,  212,  366,  106,  141,  136,  105,  133,  186,
 /*  1260 */   180,  175,  172,  124,  187,  366,  366,  366,  183,  366,
 /*  1270 */   366,  259,  114,  102,  366,  196,   98,   78,  212,   19,
 /*  1280 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1290 */   187,  259,  366,  102,  366,  321,   98,   78,  212,   24,
 /*  1300 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1310 */   187,  366,  366,  259,  366,  102,  366,  321,   98,   78,
 /*  1320 */   212,  323,  106,  141,  136,  105,  133,  186,  180,  175,
 /*  1330 */   172,  124,  187,  259,  366,  102,  366,  366,  192,   78,
 /*  1340 */   212,  121,  108,  322,  259,  128,  102,  366,  196,   98,
 /*  1350 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  180,
 /*  1360 */   175,  172,  124,  187,  259,  138,  102,  366,  196,   98,
 /*  1370 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  180,
 /*  1380 */   175,  172,  124,  187,  259,  127,  102,  366,  196,   98,
 /*  1390 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  180,
 /*  1400 */   175,  172,  124,  187,  366,  259,  122,  102,  366,  196,
 /*  1410 */    98,   78,  212,  366,  106,  141,  136,  105,  133,  186,
 /*  1420 */   180,  175,  172,  124,  187,  366,  366,  366,  366,  259,
 /*  1430 */   126,  102,  366,  196,   98,   78,  212,  366,  106,  141,
 /*  1440 */   136,  105,  133,  186,  180,  175,  172,  124,  187,  259,
 /*  1450 */   113,  102,  366,  196,   98,   78,  212,  366,  106,  141,
 /*  1460 */   136,  105,  133,  186,  180,  175,  172,  124,  187,  259,
 /*  1470 */   366,  102,  366,  321,   98,   78,  212,  366,  106,  141,
 /*  1480 */   136,  105,  133,  186,  180,  175,  172,  124,  187,  366,
 /*  1490 */   366,  259,  129,  102,  366,  196,   98,   78,  212,  320,
 /*  1500 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1510 */   187,  259,  131,  102,  366,  196,   98,   78,  212,  366,
 /*  1520 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1530 */   187,  259,  366,  102,  137,  332,   98,   78,  212,  366,
 /*  1540 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1550 */   187,  259,  366,  102,  366,  311,   98,   78,  212,  366,
 /*  1560 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1570 */   187,  259,  366,  102,  366,  366,  192,   78,  212,  366,
 /*  1580 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1590 */   278,  259,  167,  102,  366,  220,   98,   78,  212,  366,
 /*  1600 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1610 */   187,  259,  366,  102,  366,  366,  192,   78,  212,  366,
 /*  1620 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1630 */   278,  259,  284,  102,  366,  347,   98,   78,  212,  366,
 /*  1640 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1650 */   187,  259,  366,  102,  366,  366,  192,   78,  212,  366,
 /*  1660 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1670 */   278,  259,  286,  102,  366,  366,  192,   78,  212,  366,
 /*  1680 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1690 */   278,  259,  178,  102,  366,  366,  192,   78,  212,  366,
 /*  1700 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1710 */   278,  259,  160,  102,  366,  366,  192,   78,  212,  366,
 /*  1720 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1730 */   278,  259,  164,  102,  366,  366,  192,   78,  212,  366,
 /*  1740 */   106,  141,  136,  105,  133,  186,  180,  175,  172,  124,
 /*  1750 */   188,  142,  570,   44,  227,  228,  258,    4,  366,  366,
 /*  1760 */   366,  366,  366,   88,   86,  366,   87,  244,  248,  221,
 /*  1770 */   251,  250,  264,  366,  366,  307,  238,   84,   92,   66,
 /*  1780 */    67,   68,  366,   51,  366,  344,  349,  130,  366,   93,
 /*  1790 */   227,  228,  258,    4,  366,   99,  115,  366,  366,   88,
 /*  1800 */    86,  326,   87,  244,  248,  221,  251,  250,  264,   41,
 /*  1810 */   366,  366,  366,  366,  236,  241,  259,   18,  102,  366,
 /*  1820 */   366,  192,   78,  212,  366,  106,  141,  136,  105,  133,
 /*  1830 */   186,  180,  175,  182,  366,  366,  213,  227,  228,  258,
 /*  1840 */     4,  348,  366,  366,  366,  366,   88,   86,  366,   87,
 /*  1850 */   244,  248,  221,  251,  250,  264,  227,  228,  258,    4,
 /*  1860 */   366,  366,  366,  366,  366,   88,   86,  366,   87,  244,
 /*  1870 */   248,  221,  251,  250,  264,  227,  228,  258,    4,   16,
 /*  1880 */   366,  366,  366,  366,   88,   86,  366,   87,  244,  248,
 /*  1890 */   221,  251,  250,  264,  227,  228,  258,    4,  366,  142,
 /*  1900 */   366,  366,  257,   88,   86,  366,   87,  244,  248,  221,
 /*  1910 */   251,  250,  264,  259,  366,  102,  366,  366,  192,   78,
 /*  1920 */   212,  366,  106,  134,  238,   84,  366,   66,   67,   68,
 /*  1930 */   366,   51,  366,  344,  349,  130,  227,  228,  258,    4,
 /*  1940 */   366,  366,  271,   99,  115,   88,   86,  366,   87,  244,
 /*  1950 */   248,  221,  251,  250,  264,  366,  366,   18,  227,  228,
 /*  1960 */   258,    4,  240,  241,  285,  366,  366,   88,   86,  366,
 /*  1970 */    87,  244,  248,  221,  251,  250,  264,  227,  228,  258,
 /*  1980 */     4,  366,  366,  267,  366,  366,   88,   86,  366,   87,
 /*  1990 */   244,  248,  221,  251,  250,  264,  227,  228,  258,    4,
 /*  2000 */   366,  366,  366,  366,  366,   88,   86,  366,   87,  244,
 /*  2010 */   248,  221,  251,  250,  264,  227,  228,  258,    3,  366,
 /*  2020 */   366,  366,  366,  366,   88,   86,  366,   87,  244,  248,
 /*  2030 */   221,  251,  250,  264,  227,  228,  258,   20,  366,  366,
 /*  2040 */   366,  366,  366,   88,   86,  366,   87,  244,  248,  221,
 /*  2050 */   251,  250,  264,  366,  366,  259,  366,  102,  366,  366,
 /*  2060 */   192,   78,  212,  366,  106,  141,  136,  105,  133,  186,
 /*  2070 */   180,  184,  366,  366,  259,  366,  102,  366,  366,  192,
 /*  2080 */    78,  212,  366,  106,  141,  136,  105,  133,  186,  177,
 /*  2090 */    82,  142,   66,   67,   68,  185,  366,  366,  344,  349,
 /*  2100 */   130,  366,  366,  120,  339,  366,  366,   99,  115,  366,
 /*  2110 */   145,  111,  366,  149,  273,  366,  225,   83,  366,   66,
 /*  2120 */    67,   68,  366,  366,  366,  344,  349,  130,  366,  366,
 /*  2130 */   366,  259,  366,  102,  366,  366,  192,   78,  212,  366,
 /*  2140 */   106,  141,  136,  105,  133,  171,  366,  239,  366,  259,
 /*  2150 */   142,  102,  366,   54,  192,   78,  212,  366,  106,  141,
 /*  2160 */   136,  105,  123,  270,  142,   66,   67,   68,  366,  366,
 /*  2170 */   366,  344,  349,  130,  366,  223,   83,  366,   66,   67,
 /*  2180 */    68,  366,  366,  366,  344,  349,  130,  366,  366,  223,
 /*  2190 */    83,  366,   66,   67,   68,  366,  366,  366,  344,  349,
 /*  2200 */   130,   82,  366,   66,   67,   68,  234,   73,   74,  344,
 /*  2210 */   349,  130,  344,  349,  130,  366,  338,   85,  366,  366,
 /*  2220 */   232,  162,  366,  366,  149,  273,  259,  366,  102,  366,
 /*  2230 */   366,  192,   78,  212,  366,  106,  141,  136,  104,  259,
 /*  2240 */   366,  102,  366,  366,  192,   78,  212,  366,  106,  141,
 /*  2250 */   139,  275,  366,   66,   67,   68,  366,   73,   74,  344,
 /*  2260 */   349,  130,  344,  349,  130,  366,  366,  341,   73,   74,
 /*  2270 */   366,  366,  366,  344,  349,  130,  117,  259,  337,  102,
 /*  2280 */   265,   50,  192,   78,  212,  366,  107,  366,  280,  366,
 /*  2290 */   366,  366,  366,   99,  115,  366,  366,  259,  366,  102,
 /*  2300 */    95,  115,  192,   78,  195,  366,  366,  281,  110,  259,
 /*  2310 */   185,  102,  366,  117,  192,   78,  246,  265,  176,  310,
 /*  2320 */   366,  307,   99,  115,   43,  366,   33,  259,  366,  102,
 /*  2330 */    99,  115,  351,   78,  307,   93,  259,   92,  102,  366,
 /*  2340 */   366,  352,   78,  366,  366,  366,  366,  366,   93,  366,
 /*  2350 */   366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
 /*  2360 */   366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
 /*  2370 */   366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
 /*  2380 */   233,
    );
    static public $yy_lookahead = array(
 /*     0 */     2,   18,    4,    5,    6,    7,   23,   24,   39,   31,
 /*    10 */    32,   13,   14,    8,   16,   17,   18,   19,   20,   21,
 /*    20 */    22,   52,   53,   54,   55,   56,   57,   58,   59,   60,
 /*    30 */    61,   62,   63,   64,   65,   66,   67,   68,   69,   70,
 /*    40 */    71,   72,   27,   28,   29,   30,   25,   26,   50,   51,
 /*    50 */    52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
 /*    60 */    62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
 /*    70 */    72,    8,   74,   75,   76,   77,   78,   79,   80,   81,
 /*    80 */    82,   83,    2,  128,    4,    5,    6,    7,   50,   51,
 /*    90 */   135,  136,   15,   13,   14,   50,   16,   17,   18,   19,
 /*   100 */    20,   21,   22,   52,   53,   54,   55,   56,   57,   58,
 /*   110 */    59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
 /*   120 */    69,   70,   71,   72,    4,    4,   50,    7,   51,    9,
 /*   130 */    50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
 /*   140 */    60,   61,   62,   63,   64,   65,   66,   67,   68,   69,
 /*   150 */    70,   71,   72,  114,   74,   75,   76,   77,   78,   79,
 /*   160 */    80,   81,   82,   83,    7,   84,    9,  128,   87,   88,
 /*   170 */    89,  132,   91,   92,   93,   94,   18,   96,   97,   98,
 /*   180 */    99,  100,  101,  102,  103,  104,  105,  106,   67,   15,
 /*   190 */   109,  110,   10,  112,  113,  114,   51,   15,   15,  118,
 /*   200 */   119,  120,   57,   58,   59,   60,   61,   62,   63,   64,
 /*   210 */    65,   66,   38,   68,   69,   70,   71,   72,    4,  138,
 /*   220 */   139,  140,  141,  142,  143,  144,  145,  146,   84,   71,
 /*   230 */    72,   87,   88,   89,   51,   91,   92,   93,   94,  116,
 /*   240 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*   250 */   106,  128,  129,  109,  110,    4,  112,  113,  114,   51,
 /*   260 */    15,  114,  118,  119,  120,   57,   58,   59,   60,   61,
 /*   270 */    62,   63,   64,   65,   66,  128,   68,   69,   70,   71,
 /*   280 */    72,   67,  138,  139,  140,  141,  142,  143,  144,  145,
 /*   290 */     4,    5,    6,    7,   10,   50,  115,  116,    4,   13,
 /*   300 */    14,    7,   16,   17,   18,   19,   20,   21,   22,  128,
 /*   310 */   129,    2,   18,    4,    5,    6,    7,    7,   15,    9,
 /*   320 */    19,   20,   13,   14,    4,   16,   17,   18,   19,   20,
 /*   330 */    21,   22,  110,    4,  112,  113,  114,    7,   84,    9,
 /*   340 */   118,  119,  120,   57,   58,   59,   60,   61,   62,   63,
 /*   350 */    64,   65,   66,   50,   68,   69,   70,   71,   72,   50,
 /*   360 */    51,   38,    8,  109,  110,   50,  112,  113,  114,   15,
 /*   370 */     4,   15,  118,  119,  120,    7,   67,    9,    7,   11,
 /*   380 */    12,   13,   14,   74,   75,   76,   77,   78,   79,   80,
 /*   390 */    81,   82,   83,    2,  140,    4,    5,    6,    7,   15,
 /*   400 */   146,   36,   37,    7,   13,   14,   50,   16,   17,   18,
 /*   410 */    19,   20,   21,   22,    2,    8,    4,    5,    6,    7,
 /*   420 */     4,   15,   15,    7,    7,   13,   14,    8,   16,   17,
 /*   430 */    18,   19,   20,   21,   22,   51,    8,   77,   87,    8,
 /*   440 */    89,   50,   51,   92,   93,   94,   15,   96,   97,   98,
 /*   450 */    99,  100,  101,  102,  103,  104,  105,  106,   67,  108,
 /*   460 */     7,    7,   50,  126,  127,   74,   75,   76,   77,   78,
 /*   470 */    79,   80,   81,   82,   83,   87,    8,   89,   39,   67,
 /*   480 */    92,   93,   94,   15,   96,   97,   74,   75,   76,   77,
 /*   490 */    78,   79,   80,   81,   82,   83,    8,   84,  126,  127,
 /*   500 */    87,   88,   89,   15,   91,   92,   93,   94,   95,   96,
 /*   510 */    97,   98,   99,  100,  101,  102,  103,  104,  105,  106,
 /*   520 */   110,   10,  112,  113,  114,   33,  113,  114,  118,  119,
 /*   530 */   120,  118,  119,  120,   39,   87,  123,   89,    8,   35,
 /*   540 */    92,   93,   94,   84,  134,   15,   87,   88,   89,   15,
 /*   550 */    91,   92,   93,   94,   95,   96,   97,   98,   99,  100,
 /*   560 */   101,  102,  103,  104,  105,  106,    4,    8,    8,    7,
 /*   570 */     8,    9,  113,  114,   15,   15,  129,  118,  119,  120,
 /*   580 */    18,   17,  123,  136,   50,   87,   88,   89,   38,   91,
 /*   590 */    92,   93,   94,    8,   96,   97,   98,   99,  100,  101,
 /*   600 */   102,  103,  104,  105,  106,   87,   34,   89,   67,   38,
 /*   610 */    92,   93,   94,    8,   52,   53,   54,   55,   56,   57,
 /*   620 */    58,   59,   60,   61,   62,   63,   64,   65,   66,   10,
 /*   630 */    68,   69,   70,   71,   72,   38,  138,  139,  140,  141,
 /*   640 */   142,  143,  144,   87,   88,   89,   50,   91,   92,   93,
 /*   650 */    94,    3,   96,   97,   98,   99,  100,  101,  102,  103,
 /*   660 */   104,  105,  106,    8,    4,   87,   88,   89,   67,   91,
 /*   670 */    92,   93,   94,    8,   96,   97,   98,   99,  100,  101,
 /*   680 */   102,  103,  104,  105,  106,   87,  107,   89,  136,  149,
 /*   690 */    92,   93,   94,  127,  138,  139,  140,  141,  142,  143,
 /*   700 */   144,   39,   40,   41,   42,   43,   44,   45,   46,   47,
 /*   710 */    48,   49,    7,  129,    9,  149,  138,  139,  140,  141,
 /*   720 */   142,  143,  144,   18,   87,   88,   89,  149,   91,   92,
 /*   730 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*   740 */   103,  104,  105,  106,   87,   88,   89,  149,   91,   92,
 /*   750 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*   760 */   103,  104,  105,  106,  110,  149,  112,  113,  114,  149,
 /*   770 */   116,  149,  118,  119,  120,  138,  139,  140,  141,  142,
 /*   780 */   143,  144,  128,  129,  130,  149,  149,  133,  134,  135,
 /*   790 */   136,  149,  149,  149,  149,  138,  139,  140,  141,  142,
 /*   800 */   143,  144,  149,  149,   87,   88,   89,  149,   91,   92,
 /*   810 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*   820 */   103,  104,  105,  106,   87,   88,   89,  149,   91,   92,
 /*   830 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*   840 */   103,  104,  105,  106,  110,  149,  112,  113,  114,  149,
 /*   850 */   149,  149,  118,  119,  120,  138,  139,  140,  141,  142,
 /*   860 */   143,  144,  128,  149,  130,  149,  149,  133,  134,  135,
 /*   870 */   136,  149,  149,  149,  149,  138,  139,  140,  141,  142,
 /*   880 */   143,  144,  149,   87,   88,   89,  149,   91,   92,   93,
 /*   890 */    94,  149,   96,   97,   98,   99,  100,  101,  102,  103,
 /*   900 */   104,  105,  106,   87,   88,   89,  149,   91,   92,   93,
 /*   910 */    94,  149,   96,   97,   98,   99,  100,  101,  102,  103,
 /*   920 */   104,  105,  106,  113,  114,  149,  149,  149,  118,  119,
 /*   930 */   120,  121,  122,  123,  138,  139,  140,  141,  142,  143,
 /*   940 */   144,   87,  149,   89,  149,  149,   92,   93,   94,  149,
 /*   950 */    96,   97,   98,   99,  138,  139,  140,  141,  142,  143,
 /*   960 */   144,  149,  149,   87,   88,   89,  149,   91,   92,   93,
 /*   970 */    94,  149,   96,   97,   98,   99,  100,  101,  102,  103,
 /*   980 */   104,  105,  106,   87,   88,   89,  149,   91,   92,   93,
 /*   990 */    94,  149,   96,   97,   98,   99,  100,  101,  102,  103,
 /*  1000 */   104,  105,  106,   87,  149,   89,  149,  149,   92,   93,
 /*  1010 */     7,    8,    9,  149,  138,  139,  140,  141,  142,  143,
 /*  1020 */   144,   18,   87,  149,   89,  149,  149,   92,   93,   94,
 /*  1030 */   149,   96,   97,   98,  138,  139,  140,  141,  142,  143,
 /*  1040 */   144,  149,  149,    4,  113,  114,  149,    8,  149,  118,
 /*  1050 */   119,  120,  121,  122,  123,   52,   53,   54,   55,   56,
 /*  1060 */    57,   58,   59,   60,   61,   62,   63,   64,   65,   66,
 /*  1070 */   149,   68,   69,   70,   71,   72,    4,  149,   87,    7,
 /*  1080 */    89,  149,  149,   92,   93,   94,  149,   96,   97,   98,
 /*  1090 */    18,   52,   53,   54,   55,   56,   57,   58,   59,   60,
 /*  1100 */    61,   62,   63,   64,   65,   66,  149,   68,   69,   70,
 /*  1110 */    71,   72,   87,  149,   89,  149,  149,   92,   93,   94,
 /*  1120 */   149,   96,   97,   98,   52,   53,   54,   55,   56,   57,
 /*  1130 */    58,   59,   60,   61,   62,   63,   64,   65,   66,    8,
 /*  1140 */    68,   69,   70,   71,   72,   52,   53,   54,   55,   56,
 /*  1150 */    57,   58,   59,   60,   61,   62,   63,   64,   65,   66,
 /*  1160 */   149,   68,   69,   70,   71,   72,   73,   57,   58,   59,
 /*  1170 */    60,   61,   62,   63,   64,   65,   66,  149,   68,   69,
 /*  1180 */    70,   71,   72,   52,   53,   54,   55,   56,   57,   58,
 /*  1190 */    59,   60,   61,   62,   63,   64,   65,   66,  149,   68,
 /*  1200 */    69,   70,   71,   72,   52,   53,   54,   55,   56,   57,
 /*  1210 */    58,   59,   60,   61,   62,   63,   64,   65,   66,  149,
 /*  1220 */    68,   69,   70,   71,   72,   87,   88,   89,  149,   91,
 /*  1230 */    92,   93,   94,  149,   96,   97,   98,   99,  100,  101,
 /*  1240 */   102,  103,  104,  105,  106,   87,   88,   89,  149,   91,
 /*  1250 */    92,   93,   94,  149,   96,   97,   98,   99,  100,  101,
 /*  1260 */   102,  103,  104,  105,  106,  149,  149,  149,   84,  149,
 /*  1270 */   149,   87,   88,   89,  149,   91,   92,   93,   94,  141,
 /*  1280 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1290 */   106,   87,  149,   89,  149,   91,   92,   93,   94,  141,
 /*  1300 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1310 */   106,  149,  149,   87,  149,   89,  149,   91,   92,   93,
 /*  1320 */    94,  117,   96,   97,   98,   99,  100,  101,  102,  103,
 /*  1330 */   104,  105,  106,   87,  149,   89,  149,  149,   92,   93,
 /*  1340 */    94,  137,   96,  117,   87,   88,   89,  149,   91,   92,
 /*  1350 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*  1360 */   103,  104,  105,  106,   87,   88,   89,  149,   91,   92,
 /*  1370 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*  1380 */   103,  104,  105,  106,   87,   88,   89,  149,   91,   92,
 /*  1390 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*  1400 */   103,  104,  105,  106,  149,   87,   88,   89,  149,   91,
 /*  1410 */    92,   93,   94,  149,   96,   97,   98,   99,  100,  101,
 /*  1420 */   102,  103,  104,  105,  106,  149,  149,  149,  149,   87,
 /*  1430 */    88,   89,  149,   91,   92,   93,   94,  149,   96,   97,
 /*  1440 */    98,   99,  100,  101,  102,  103,  104,  105,  106,   87,
 /*  1450 */    88,   89,  149,   91,   92,   93,   94,  149,   96,   97,
 /*  1460 */    98,   99,  100,  101,  102,  103,  104,  105,  106,   87,
 /*  1470 */   149,   89,  149,   91,   92,   93,   94,  149,   96,   97,
 /*  1480 */    98,   99,  100,  101,  102,  103,  104,  105,  106,  149,
 /*  1490 */   149,   87,   88,   89,  149,   91,   92,   93,   94,  117,
 /*  1500 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1510 */   106,   87,   88,   89,  149,   91,   92,   93,   94,  149,
 /*  1520 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1530 */   106,   87,  149,   89,   90,   91,   92,   93,   94,  149,
 /*  1540 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1550 */   106,   87,  149,   89,  149,   91,   92,   93,   94,  149,
 /*  1560 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1570 */   106,   87,  149,   89,  149,  149,   92,   93,   94,  149,
 /*  1580 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1590 */   106,   87,  108,   89,  149,   91,   92,   93,   94,  149,
 /*  1600 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1610 */   106,   87,  149,   89,  149,  149,   92,   93,   94,  149,
 /*  1620 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1630 */   106,   87,  108,   89,  149,   91,   92,   93,   94,  149,
 /*  1640 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1650 */   106,   87,  149,   89,  149,  149,   92,   93,   94,  149,
 /*  1660 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1670 */   106,   87,  108,   89,  149,  149,   92,   93,   94,  149,
 /*  1680 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1690 */   106,   87,  108,   89,  149,  149,   92,   93,   94,  149,
 /*  1700 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1710 */   106,   87,  108,   89,  149,  149,   92,   93,   94,  149,
 /*  1720 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1730 */   106,   87,  108,   89,  149,  149,   92,   93,   94,  149,
 /*  1740 */    96,   97,   98,   99,  100,  101,  102,  103,  104,  105,
 /*  1750 */   106,   84,   85,   86,    4,    5,    6,    7,  149,  149,
 /*  1760 */   149,  149,  149,   13,   14,  149,   16,   17,   18,   19,
 /*  1770 */    20,   21,   22,  149,  149,    4,  109,  110,    7,  112,
 /*  1780 */   113,  114,  149,  116,  149,  118,  119,  120,  149,   18,
 /*  1790 */     4,    5,    6,    7,  149,  128,  129,  149,  149,   13,
 /*  1800 */    14,   51,   16,   17,   18,   19,   20,   21,   22,   38,
 /*  1810 */   149,  149,  149,  149,  147,  148,   87,   67,   89,  149,
 /*  1820 */   149,   92,   93,   94,  149,   96,   97,   98,   99,  100,
 /*  1830 */   101,  102,  103,  104,  149,  149,   50,    4,    5,    6,
 /*  1840 */     7,    8,  149,  149,  149,  149,   13,   14,  149,   16,
 /*  1850 */    17,   18,   19,   20,   21,   22,    4,    5,    6,    7,
 /*  1860 */   149,  149,  149,  149,  149,   13,   14,  149,   16,   17,
 /*  1870 */    18,   19,   20,   21,   22,    4,    5,    6,    7,    8,
 /*  1880 */   149,  149,  149,  149,   13,   14,  149,   16,   17,   18,
 /*  1890 */    19,   20,   21,   22,    4,    5,    6,    7,  149,   84,
 /*  1900 */   149,  149,   50,   13,   14,  149,   16,   17,   18,   19,
 /*  1910 */    20,   21,   22,   87,  149,   89,  149,  149,   92,   93,
 /*  1920 */    94,  149,   96,   97,  109,  110,  149,  112,  113,  114,
 /*  1930 */   149,  116,  149,  118,  119,  120,    4,    5,    6,    7,
 /*  1940 */   149,  149,   10,  128,  129,   13,   14,  149,   16,   17,
 /*  1950 */    18,   19,   20,   21,   22,  149,  149,   67,    4,    5,
 /*  1960 */     6,    7,  147,  148,   10,  149,  149,   13,   14,  149,
 /*  1970 */    16,   17,   18,   19,   20,   21,   22,    4,    5,    6,
 /*  1980 */     7,  149,  149,   10,  149,  149,   13,   14,  149,   16,
 /*  1990 */    17,   18,   19,   20,   21,   22,    4,    5,    6,    7,
 /*  2000 */   149,  149,  149,  149,  149,   13,   14,  149,   16,   17,
 /*  2010 */    18,   19,   20,   21,   22,    4,    5,    6,    7,  149,
 /*  2020 */   149,  149,  149,  149,   13,   14,  149,   16,   17,   18,
 /*  2030 */    19,   20,   21,   22,    4,    5,    6,    7,  149,  149,
 /*  2040 */   149,  149,  149,   13,   14,  149,   16,   17,   18,   19,
 /*  2050 */    20,   21,   22,  149,  149,   87,  149,   89,  149,  149,
 /*  2060 */    92,   93,   94,  149,   96,   97,   98,   99,  100,  101,
 /*  2070 */   102,  103,  149,  149,   87,  149,   89,  149,  149,   92,
 /*  2080 */    93,   94,  149,   96,   97,   98,   99,  100,  101,  102,
 /*  2090 */   110,   84,  112,  113,  114,  116,  149,  149,  118,  119,
 /*  2100 */   120,  149,  149,  124,  125,  149,  149,  128,  129,  149,
 /*  2110 */   130,  131,  149,  133,  134,  149,  109,  110,  149,  112,
 /*  2120 */   113,  114,  149,  149,  149,  118,  119,  120,  149,  149,
 /*  2130 */   149,   87,  149,   89,  149,  149,   92,   93,   94,  149,
 /*  2140 */    96,   97,   98,   99,  100,  101,  149,  140,  149,   87,
 /*  2150 */    84,   89,  149,  146,   92,   93,   94,  149,   96,   97,
 /*  2160 */    98,   99,  100,  110,   84,  112,  113,  114,  149,  149,
 /*  2170 */   149,  118,  119,  120,  149,  109,  110,  149,  112,  113,
 /*  2180 */   114,  149,  149,  149,  118,  119,  120,  149,  149,  109,
 /*  2190 */   110,  149,  112,  113,  114,  149,  149,  149,  118,  119,
 /*  2200 */   120,  110,  149,  112,  113,  114,  140,  113,  114,  118,
 /*  2210 */   119,  120,  118,  119,  120,  149,  122,  123,  149,  149,
 /*  2220 */   140,  130,  149,  149,  133,  134,   87,  149,   89,  149,
 /*  2230 */   149,   92,   93,   94,  149,   96,   97,   98,   99,   87,
 /*  2240 */   149,   89,  149,  149,   92,   93,   94,  149,   96,   97,
 /*  2250 */    98,  110,  149,  112,  113,  114,  149,  113,  114,  118,
 /*  2260 */   119,  120,  118,  119,  120,  149,  149,  123,  113,  114,
 /*  2270 */   149,  149,  149,  118,  119,  120,  111,   87,  123,   89,
 /*  2280 */   115,  116,   92,   93,   94,  149,   96,  149,  116,  149,
 /*  2290 */   149,  149,  149,  128,  129,  149,  149,   87,  149,   89,
 /*  2300 */   128,  129,   92,   93,   94,  149,  149,  135,  136,   87,
 /*  2310 */   116,   89,  149,  111,   92,   93,   94,  115,  116,  125,
 /*  2320 */   149,    4,  128,  129,    7,  149,    9,   87,  149,   89,
 /*  2330 */   128,  129,   92,   93,    4,   18,   87,    7,   89,  149,
 /*  2340 */   149,   92,   93,  149,  149,  149,  149,  149,   18,  149,
 /*  2350 */   149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
 /*  2360 */   149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
 /*  2370 */   149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
 /*  2380 */    50,
);
    const YY_SHIFT_USE_DFLT = -32;
    const YY_SHIFT_MAX = 186;
    static public $yy_shift_ofst = array(
 /*     0 */  1072,   80,   -2,  286,  286,  309,  391,  412,  412,  412,
 /*    10 */   412,  412,  412,  412,  412,  412,  412, 1786, 1890, 1786,
 /*    20 */  1992, 1750, 1852, 1890, 1871, 1833, 1992, 1992, 1992, 1992,
 /*    30 */  1992, 1992, 1932, 1954, 1973, 1992, 1992, 1992, 1992, 1992,
 /*    40 */  1992, 1992, 1992,  562, 1072, 1992, 1003, 1992, 1992, 1039,
 /*    50 */   -31,   51, 1992,   51,   51, 1131, 1992, 1992, 1992, 1093,
 /*    60 */  1110, 1110, 1992, 1992, 1992, 1992, 1152, 1152, 1152,  145,
 /*    70 */   208, 1992, 1992, 1110, 1110, 1992, 1992, 1992, 1992, 1992,
 /*    80 */  1992, 1992, 2317, 2330, 2330, 1771, 2030, 2011, 2030, 1771,
 /*    90 */   294,  705,  294,  158,  158,  120,  251,  251,  662,  416,
 /*   100 */   330,  251,  368,   15,   15,   15,  -17,  -17,  -17,  384,
 /*   110 */   157,  560,  310,  534,  468,  310,  157,  245,  183,  121,
 /*   120 */   303,   77,  431,  -22,  365,   21,  488,  530,  354,  174,
 /*   130 */   214,  559,  356,  -22,  301,   21,   21,  407,  182,   21,
 /*   140 */   301,  301,   38,   21,  371,  428,  360,  453,  396,  406,
 /*   150 */   419,  417,  315,  323,   63,   45,    5,   76,  329,  320,
 /*   160 */   284,  366,  665,  596,  619,  605,  454,  571,  597,  648,
 /*   170 */   660,  564,  504,  655,  541,  572,  495,  492,  511,  439,
 /*   180 */   492,  601,  504,  585,  572,  550,  564,
);
    const YY_REDUCE_USE_DFLT = -46;
    const YY_REDUCE_MAX = 101;
    static public $yy_reduce_ofst = array(
 /*     0 */  1667,   81,  144,  413,  459,  717,  717,  796,  896,  876,
 /*    10 */   816,  737,  498,  637,  556,  578,  657, 1138, 1204, 1158,
 /*    20 */  1184, 1226, 1362, 1382, 1342, 1444, 1424, 1404, 1257, 1277,
 /*    30 */  1297, 1318, 1624, 1604, 1584, 1504, 1464,  351, 1484, 1564,
 /*    40 */  1544, 1524, 1644,  654, 1815, 1729,  734, 1968, 1987, 1980,
 /*    50 */  2007,  254, 2044, 2066, 2080, 2091, 2062,  854, 2139,  410,
 /*    60 */   931,  810,  991,  935, 1025, 2152, 2053, 2141,  222, 2094,
 /*    70 */  2094,  388, 1826, 2144, 2155, 2190, 1246,  518, 2222, 2210,
 /*    80 */   598,  448, 2172, 2202, 2165, 1979,  916, 2240, 2249, 2194,
 /*    90 */   181,  -45,  123,   39,  147,  447,  337,  372,  579,  584,
 /*   100 */   552,  566,
);
    static public $yyExpectedTokens = array(
        /* 0 */ array(4, 7, 18, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 1 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 2 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 3 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 4 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 5 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 51, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 6 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 51, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 7 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 8 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 9 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 10 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 11 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 12 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 13 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 14 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 15 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 16 */ array(2, 4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, ),
        /* 17 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, ),
        /* 18 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 67, ),
        /* 19 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, ),
        /* 20 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 21 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 51, 67, ),
        /* 22 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 50, ),
        /* 23 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, 67, ),
        /* 24 */ array(4, 5, 6, 7, 8, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 25 */ array(4, 5, 6, 7, 8, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 26 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 27 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 28 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 29 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 30 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 31 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 32 */ array(4, 5, 6, 7, 10, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 33 */ array(4, 5, 6, 7, 10, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 34 */ array(4, 5, 6, 7, 10, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 35 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 36 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 37 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 38 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 39 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 40 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 41 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 42 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 43 */ array(4, 7, 8, 9, 18, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 44 */ array(4, 7, 18, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 45 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 46 */ array(7, 8, 9, 18, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 47 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 48 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 49 */ array(4, 8, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 50 */ array(39, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, ),
        /* 51 */ array(52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, ),
        /* 52 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 53 */ array(52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, ),
        /* 54 */ array(52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, ),
        /* 55 */ array(8, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 56 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 57 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 58 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 59 */ array(52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, ),
        /* 60 */ array(57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 61 */ array(57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 62 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 63 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 64 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 65 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 66 */ array(52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 67 */ array(52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 68 */ array(52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 69 */ array(51, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 70 */ array(51, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 71 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 72 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 73 */ array(57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 74 */ array(57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, ),
        /* 75 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 76 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 77 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 78 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 79 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 80 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 81 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 82 */ array(4, 7, 9, 18, ),
        /* 83 */ array(4, 7, 18, 50, ),
        /* 84 */ array(4, 7, 18, 50, ),
        /* 85 */ array(4, 7, 18, 38, ),
        /* 86 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 87 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 88 */ array(4, 5, 6, 7, 13, 14, 16, 17, 18, 19, 20, 21, 22, ),
        /* 89 */ array(4, 7, 18, 38, ),
        /* 90 */ array(4, 7, 18, ),
        /* 91 */ array(7, 9, 18, ),
        /* 92 */ array(4, 7, 18, ),
        /* 93 */ array(18, 71, 72, ),
        /* 94 */ array(18, 71, 72, ),
        /* 95 */ array(4, 7, 9, ),
        /* 96 */ array(4, ),
        /* 97 */ array(4, ),
        /* 98 */ array(39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, ),
        /* 99 */ array(4, 7, ),
        /* 100 */ array(7, 9, ),
        /* 101 */ array(4, ),
        /* 102 */ array(7, 9, 11, 12, 13, 14, ),
        /* 103 */ array(27, 28, 29, 30, ),
        /* 104 */ array(27, 28, 29, 30, ),
        /* 105 */ array(27, 28, 29, 30, ),
        /* 106 */ array(18, 23, 24, ),
        /* 107 */ array(18, 23, 24, ),
        /* 108 */ array(18, 23, 24, ),
        /* 109 */ array(15, 51, ),
        /* 110 */ array(7, 9, ),
        /* 111 */ array(8, 15, ),
        /* 112 */ array(7, 9, ),
        /* 113 */ array(15, 50, ),
        /* 114 */ array(8, 15, ),
        /* 115 */ array(7, 9, ),
        /* 116 */ array(7, 9, ),
        /* 117 */ array(15, 50, ),
        /* 118 */ array(15, 51, ),
        /* 119 */ array(4, 67, ),
        /* 120 */ array(15, 50, ),
        /* 121 */ array(15, 51, ),
        /* 122 */ array(8, 15, ),
        /* 123 */ array(31, 32, ),
        /* 124 */ array(36, 37, ),
        /* 125 */ array(25, 26, ),
        /* 126 */ array(8, 15, ),
        /* 127 */ array(8, 15, ),
        /* 128 */ array(8, 15, ),
        /* 129 */ array(15, 38, ),
        /* 130 */ array(4, 67, ),
        /* 131 */ array(8, 15, ),
        /* 132 */ array(15, 50, ),
        /* 133 */ array(31, 32, ),
        /* 134 */ array(19, 20, ),
        /* 135 */ array(25, 26, ),
        /* 136 */ array(25, 26, ),
        /* 137 */ array(8, 15, ),
        /* 138 */ array(10, 15, ),
        /* 139 */ array(25, 26, ),
        /* 140 */ array(19, 20, ),
        /* 141 */ array(19, 20, ),
        /* 142 */ array(50, 51, ),
        /* 143 */ array(25, 26, ),
        /* 144 */ array(7, ),
        /* 145 */ array(8, ),
        /* 146 */ array(77, ),
        /* 147 */ array(7, ),
        /* 148 */ array(7, ),
        /* 149 */ array(15, ),
        /* 150 */ array(8, ),
        /* 151 */ array(7, ),
        /* 152 */ array(50, ),
        /* 153 */ array(38, ),
        /* 154 */ array(8, ),
        /* 155 */ array(50, ),
        /* 156 */ array(8, ),
        /* 157 */ array(50, ),
        /* 158 */ array(4, ),
        /* 159 */ array(4, ),
        /* 160 */ array(10, ),
        /* 161 */ array(4, ),
        /* 162 */ array(8, ),
        /* 163 */ array(50, ),
        /* 164 */ array(10, ),
        /* 165 */ array(8, ),
        /* 166 */ array(7, ),
        /* 167 */ array(38, ),
        /* 168 */ array(38, ),
        /* 169 */ array(3, ),
        /* 170 */ array(4, ),
        /* 171 */ array(17, ),
        /* 172 */ array(35, ),
        /* 173 */ array(8, ),
        /* 174 */ array(67, ),
        /* 175 */ array(34, ),
        /* 176 */ array(39, ),
        /* 177 */ array(33, ),
        /* 178 */ array(10, ),
        /* 179 */ array(39, ),
        /* 180 */ array(33, ),
        /* 181 */ array(67, ),
        /* 182 */ array(35, ),
        /* 183 */ array(8, ),
        /* 184 */ array(34, ),
        /* 185 */ array(38, ),
        /* 186 */ array(17, ),
        /* 187 */ array(),
        /* 188 */ array(),
        /* 189 */ array(),
        /* 190 */ array(),
        /* 191 */ array(),
        /* 192 */ array(),
        /* 193 */ array(),
        /* 194 */ array(),
        /* 195 */ array(),
        /* 196 */ array(),
        /* 197 */ array(),
        /* 198 */ array(),
        /* 199 */ array(),
        /* 200 */ array(),
        /* 201 */ array(),
        /* 202 */ array(),
        /* 203 */ array(),
        /* 204 */ array(),
        /* 205 */ array(),
        /* 206 */ array(),
        /* 207 */ array(),
        /* 208 */ array(),
        /* 209 */ array(),
        /* 210 */ array(),
        /* 211 */ array(),
        /* 212 */ array(),
        /* 213 */ array(),
        /* 214 */ array(),
        /* 215 */ array(),
        /* 216 */ array(),
        /* 217 */ array(),
        /* 218 */ array(),
        /* 219 */ array(),
        /* 220 */ array(),
        /* 221 */ array(),
        /* 222 */ array(),
        /* 223 */ array(),
        /* 224 */ array(),
        /* 225 */ array(),
        /* 226 */ array(),
        /* 227 */ array(),
        /* 228 */ array(),
        /* 229 */ array(),
        /* 230 */ array(),
        /* 231 */ array(),
        /* 232 */ array(),
        /* 233 */ array(),
        /* 234 */ array(),
        /* 235 */ array(),
        /* 236 */ array(),
        /* 237 */ array(),
        /* 238 */ array(),
        /* 239 */ array(),
        /* 240 */ array(),
        /* 241 */ array(),
        /* 242 */ array(),
        /* 243 */ array(),
        /* 244 */ array(),
        /* 245 */ array(),
        /* 246 */ array(),
        /* 247 */ array(),
        /* 248 */ array(),
        /* 249 */ array(),
        /* 250 */ array(),
        /* 251 */ array(),
        /* 252 */ array(),
        /* 253 */ array(),
        /* 254 */ array(),
        /* 255 */ array(),
        /* 256 */ array(),
        /* 257 */ array(),
        /* 258 */ array(),
        /* 259 */ array(),
        /* 260 */ array(),
        /* 261 */ array(),
        /* 262 */ array(),
        /* 263 */ array(),
        /* 264 */ array(),
        /* 265 */ array(),
        /* 266 */ array(),
        /* 267 */ array(),
        /* 268 */ array(),
        /* 269 */ array(),
        /* 270 */ array(),
        /* 271 */ array(),
        /* 272 */ array(),
        /* 273 */ array(),
        /* 274 */ array(),
        /* 275 */ array(),
        /* 276 */ array(),
        /* 277 */ array(),
        /* 278 */ array(),
        /* 279 */ array(),
        /* 280 */ array(),
        /* 281 */ array(),
        /* 282 */ array(),
        /* 283 */ array(),
        /* 284 */ array(),
        /* 285 */ array(),
        /* 286 */ array(),
        /* 287 */ array(),
        /* 288 */ array(),
        /* 289 */ array(),
        /* 290 */ array(),
        /* 291 */ array(),
        /* 292 */ array(),
        /* 293 */ array(),
        /* 294 */ array(),
        /* 295 */ array(),
        /* 296 */ array(),
        /* 297 */ array(),
        /* 298 */ array(),
        /* 299 */ array(),
        /* 300 */ array(),
        /* 301 */ array(),
        /* 302 */ array(),
        /* 303 */ array(),
        /* 304 */ array(),
        /* 305 */ array(),
        /* 306 */ array(),
        /* 307 */ array(),
        /* 308 */ array(),
        /* 309 */ array(),
        /* 310 */ array(),
        /* 311 */ array(),
        /* 312 */ array(),
        /* 313 */ array(),
        /* 314 */ array(),
        /* 315 */ array(),
        /* 316 */ array(),
        /* 317 */ array(),
        /* 318 */ array(),
        /* 319 */ array(),
        /* 320 */ array(),
        /* 321 */ array(),
        /* 322 */ array(),
        /* 323 */ array(),
        /* 324 */ array(),
        /* 325 */ array(),
        /* 326 */ array(),
        /* 327 */ array(),
        /* 328 */ array(),
        /* 329 */ array(),
        /* 330 */ array(),
        /* 331 */ array(),
        /* 332 */ array(),
        /* 333 */ array(),
        /* 334 */ array(),
        /* 335 */ array(),
        /* 336 */ array(),
        /* 337 */ array(),
        /* 338 */ array(),
        /* 339 */ array(),
        /* 340 */ array(),
        /* 341 */ array(),
        /* 342 */ array(),
        /* 343 */ array(),
        /* 344 */ array(),
        /* 345 */ array(),
        /* 346 */ array(),
        /* 347 */ array(),
        /* 348 */ array(),
        /* 349 */ array(),
        /* 350 */ array(),
        /* 351 */ array(),
        /* 352 */ array(),
        /* 353 */ array(),
);
    static public $yy_default = array(
 /*     0 */   569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
 /*    10 */   569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
 /*    20 */   569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
 /*    30 */   569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
 /*    40 */   569,  569,  569,  569,  354,  569,  569,  569,  569,  569,
 /*    50 */   442,  569,  569,  569,  569,  569,  569,  569,  569,  569,
 /*    60 */   569,  569,  569,  569,  569,  569,  434,  436,  438,  569,
 /*    70 */   569,  569,  569,  470,  472,  569,  569,  569,  569,  569,
 /*    80 */   569,  569,  508,  569,  569,  569,  569,  569,  569,  569,
 /*    90 */   569,  511,  569,  496,  497,  513,  569,  569,  382,  569,
 /*   100 */   513,  569,  370,  401,  400,  399,  388,  389,  390,  569,
 /*   110 */   514,  569,  487,  569,  569,  488,  515,  569,  569,  569,
 /*   120 */   569,  569,  569,  403,  412,  398,  569,  569,  569,  569,
 /*   130 */   569,  569,  569,  402,  392,  397,  394,  569,  569,  395,
 /*   140 */   393,  391,  569,  396,  569,  569,  569,  569,  569,  502,
 /*   150 */   569,  569,  569,  355,  569,  569,  569,  569,  569,  569,
 /*   160 */   569,  569,  569,  569,  569,  569,  569,  569,  569,  549,
 /*   170 */   569,  405,  410,  569,  463,  408,  442,  407,  569,  483,
 /*   180 */   406,  480,  411,  569,  409,  475,  404,  414,  413,  550,
 /*   190 */   551,  385,  382,  552,  386,  387,  427,  538,  548,  530,
 /*   200 */   531,  532,  421,  422,  432,  433,  424,  423,  533,  534,
 /*   210 */   417,  416,  384,  547,  537,  418,  535,  536,  420,  419,
 /*   220 */   415,  378,  542,  544,  545,  543,  541,  355,  356,  540,
 /*   230 */   546,  441,  565,  430,  567,  568,  561,  431,  564,  566,
 /*   240 */   562,  563,  539,  554,  376,  375,  373,  555,  377,  425,
 /*   250 */   380,  379,  553,  372,  359,  358,  560,  559,  357,  360,
 /*   260 */   558,  556,  557,  361,  381,  440,  520,  492,  523,  491,
 /*   270 */   435,  519,  500,  504,  439,  437,  524,  516,  429,  522,
 /*   280 */   506,  507,  521,  518,  476,  517,  477,  498,  501,  510,
 /*   290 */   495,  484,  503,  481,  494,  486,  479,  493,  505,  482,
 /*   300 */   490,  445,  444,  499,  446,  447,  478,  489,  448,  509,
 /*   310 */   474,  428,  454,  453,  383,  367,  366,  364,  455,  365,
 /*   320 */   443,  525,  529,  528,  485,  449,  527,  450,  452,  451,
 /*   330 */   526,  456,  368,  466,  465,  464,  462,  471,  467,  473,
 /*   340 */   468,  469,  461,  512,  458,  363,  457,  369,  362,  459,
 /*   350 */   460,  374,  371,  426,
);
/* The next thing included is series of defines which control
** various aspects of the generated parser.
**    YYCODETYPE         is the data type used for storing terminal
**                       and nonterminal numbers.  "unsigned char" is
**                       used if there are fewer than 250 terminals
**                       and nonterminals.  "int" is used otherwise.
**    YYNOCODE           is a number of type YYCODETYPE which corresponds
**                       to no legal terminal or nonterminal number.  This
**                       number is used to fill in empty slots of the hash 
**                       table.
**    YYFALLBACK         If defined, this indicates that one or more tokens
**                       have fall-back values which should be used if the
**                       original value of the token will not parse.
**    YYACTIONTYPE       is the data type used for storing terminal
**                       and nonterminal numbers.  "unsigned char" is
**                       used if there are fewer than 250 rules and
**                       states combined.  "int" is used otherwise.
**    c_lang_TOKENTYPE     is the data type used for minor tokens given 
**                       directly to the parser from the tokenizer.
**    YYMINORTYPE        is the data type used for all minor tokens.
**                       This is typically a union of many types, one of
**                       which is c_lang_TOKENTYPE.  The entry in the union
**                       for base tokens is called "yy0".
**    YYSTACKDEPTH       is the maximum depth of the parser's stack.
**    c_lang_ARG_DECL      A global declaration for the %extra_argument
**    YYNSTATE           the combined number of states.
**    YYNRULE            the number of rules in the grammar
**    YYERRORSYMBOL      is the code number of the error symbol.  If not
**                       defined, then do no error processing.
*/
    const YYNOCODE = 150;
    const YYSTACKDEPTH = 100;
    const c_lang_ARG_DECL = '0';
    const YYNSTATE = 354;
    const YYNRULE = 215;
    const YYERRORSYMBOL = 84;
    const YYERRSYMDT = 'yy0';
    const YYFALLBACK = 0;
    /** The next table maps tokens into fallback tokens.  If a construct
     * like the following:
     * 
     *      %fallback ID X Y Z.
     *
     * appears in the grammer, then ID becomes a fallback token for X, Y,
     * and Z.  Whenever one of the tokens X, Y, or Z is input to the parser
     * but it does not parse, the type of the token is changed to ID and
     * the parse is retried before an error is thrown.
     */
    static public $yyFallback = array(
    );
    /**
     * Turn parser tracing on by giving a stream to which to write the trace
     * and a prompt to preface each trace message.  Tracing is turned off
     * by making either argument NULL 
     *
     * Inputs:
     * 
     * - A stream resource to which trace output should be written.
     *   If NULL, then tracing is turned off.
     * - A prefix string written at the beginning of every
     *   line of trace output.  If NULL, then tracing is
     *   turned off.
     *
     * Outputs:
     * 
     * - None.
     * @param resource
     * @param string
     */
    static function Trace($TraceFILE, $zTracePrompt)
    {
        if (!$TraceFILE) {
            $zTracePrompt = 0;
        } elseif (!$zTracePrompt) {
            $TraceFILE = 0;
        }
        self::$yyTraceFILE = $TraceFILE;
        self::$yyTracePrompt = $zTracePrompt;
    }

    static function PrintTrace()
    {
        self::$yyTraceFILE = fopen('php://output', 'w');
        self::$yyTracePrompt = '';
    }

    static public $yyTraceFILE;
    static public $yyTracePrompt;
    /**
     * @var int
     */
    public $yyidx;                    /* Index of top element in stack */
    /**
     * @var int
     */
    public $yyerrcnt;                 /* Shifts left before out of the error */
    //public $???????;      /* A place to hold %extra_argument - dynamically added */
    /**
     * @var array
     */
    public $yystack = array();  /* The parser's stack */

    /**
     * For tracing shifts, the names of all terminals and nonterminals
     * are required.  The following table supplies these names
     * @var array
     */
    static public $yyTokenName = array( 
  '$',             'PRAGMA',        'IF',            'ELSE',        
  'IDENTIFIER',    'CONSTANT',      'STRING_LITERAL',  'LPAREN',      
  'RPAREN',        'LSQUARE',       'RSQUARE',       'PERIOD',      
  'PTR_OP',        'INC_OP',        'DEC_OP',        'COMMA',       
  'SIZEOF',        'AMP',           'STAR',          'PLUS',        
  'MINUS',         'TILDE',         'EXCLAM',        'SLASH',       
  'PERCENT',       'LEFT_OP',       'RIGHT_OP',      'LANGLE',      
  'RANGLE',        'LE_OP',         'GE_OP',         'EQ_OP',       
  'NE_OP',         'CARET',         'PIPE',          'AND_OP',      
  'OR_OP',         'QUESTION',      'COLON',         'EQUALS',      
  'MUL_ASSIGN',    'DIV_ASSIGN',    'MOD_ASSIGN',    'ADD_ASSIGN',  
  'SUB_ASSIGN',    'LEFT_ASSIGN',   'RIGHT_ASSIGN',  'AND_ASSIGN',  
  'XOR_ASSIGN',    'OR_ASSIGN',     'SEMIC',         'RCURLY',      
  'TYPEDEF',       'EXTERN',        'STATIC',        'AUTO',        
  'REGISTER',      'VOID',          'CHAR',          'SHORT',       
  'INT',           'LONG',          'FLOAT',         'DOUBLE',      
  'SIGNED',        'UNSIGNED',      'TYPE_NAME',     'LCURLY',      
  'STRUCT',        'UNION',         'ENUM',          'CONST',       
  'VOLATILE',      'ELLIPSIS',      'CASE',          'DEFAULT',     
  'SWITCH',        'WHILE',         'DO',            'FOR',         
  'GOTO',          'CONTINUE',      'BREAK',         'RETURN',      
  'error',         'start',         'translation_unit',  'primary_expression',
  'expression',    'postfix_expression',  'argument_expression_list',  'assignment_expression',
  'unary_expression',  'unary_operator',  'cast_expression',  'type_name',   
  'multiplicative_expression',  'additive_expression',  'shift_expression',  'relational_expression',
  'equality_expression',  'and_expression',  'exclusive_or_expression',  'inclusive_or_expression',
  'logical_and_expression',  'logical_or_expression',  'conditional_expression',  'assignment_operator',
  'constant_expression',  'declaration',   'declaration_specifiers',  'init_declarator_list',
  'storage_class_specifier',  'type_specifier',  'type_qualifier',  'init_declarator',
  'declarator',    'initializer',   'struct_or_union_specifier',  'enum_specifier',
  'struct_or_union',  'struct_declaration_list',  'struct_declaration',  'specifier_qualifier_list',
  'struct_declarator_list',  'struct_declarator',  'enumerator_list',  'enumerator',  
  'pointer',       'direct_declarator',  'parameter_type_list',  'identifier_list',
  'type_qualifier_list',  'parameter_list',  'parameter_declaration',  'abstract_declarator',
  'direct_abstract_declarator',  'initializer_list',  'statement',     'labeled_statement',
  'compound_statement',  'expression_statement',  'selection_statement',  'iteration_statement',
  'jump_statement',  'statement_list',  'declaration_list',  'external_declaration',
  'function_definition',
    );

    /**
     * For tracing reduce actions, the names of all rules are required.
     * @var array
     */
    static public $yyRuleName = array(
 /*   0 */ "start ::= translation_unit",
 /*   1 */ "primary_expression ::= IDENTIFIER",
 /*   2 */ "primary_expression ::= CONSTANT",
 /*   3 */ "primary_expression ::= STRING_LITERAL",
 /*   4 */ "primary_expression ::= LPAREN expression RPAREN",
 /*   5 */ "primary_expression ::= LPAREN error RPAREN",
 /*   6 */ "postfix_expression ::= primary_expression",
 /*   7 */ "postfix_expression ::= postfix_expression LSQUARE expression RSQUARE",
 /*   8 */ "postfix_expression ::= postfix_expression LPAREN RPAREN",
 /*   9 */ "postfix_expression ::= postfix_expression LPAREN argument_expression_list RPAREN",
 /*  10 */ "postfix_expression ::= postfix_expression PERIOD IDENTIFIER",
 /*  11 */ "postfix_expression ::= postfix_expression PTR_OP IDENTIFIER",
 /*  12 */ "postfix_expression ::= postfix_expression INC_OP",
 /*  13 */ "postfix_expression ::= postfix_expression DEC_OP",
 /*  14 */ "argument_expression_list ::= assignment_expression",
 /*  15 */ "argument_expression_list ::= argument_expression_list COMMA assignment_expression",
 /*  16 */ "unary_expression ::= postfix_expression",
 /*  17 */ "unary_expression ::= INC_OP unary_expression",
 /*  18 */ "unary_expression ::= DEC_OP unary_expression",
 /*  19 */ "unary_expression ::= unary_operator cast_expression",
 /*  20 */ "unary_expression ::= SIZEOF unary_expression",
 /*  21 */ "unary_expression ::= SIZEOF LPAREN type_name RPAREN",
 /*  22 */ "unary_operator ::= AMP",
 /*  23 */ "unary_operator ::= STAR",
 /*  24 */ "unary_operator ::= PLUS",
 /*  25 */ "unary_operator ::= MINUS",
 /*  26 */ "unary_operator ::= TILDE",
 /*  27 */ "unary_operator ::= EXCLAM",
 /*  28 */ "cast_expression ::= unary_expression",
 /*  29 */ "cast_expression ::= LPAREN type_name RPAREN cast_expression",
 /*  30 */ "multiplicative_expression ::= cast_expression",
 /*  31 */ "multiplicative_expression ::= multiplicative_expression STAR cast_expression",
 /*  32 */ "multiplicative_expression ::= multiplicative_expression SLASH cast_expression",
 /*  33 */ "multiplicative_expression ::= multiplicative_expression PERCENT cast_expression",
 /*  34 */ "additive_expression ::= multiplicative_expression",
 /*  35 */ "additive_expression ::= additive_expression PLUS multiplicative_expression",
 /*  36 */ "additive_expression ::= additive_expression MINUS multiplicative_expression",
 /*  37 */ "shift_expression ::= additive_expression",
 /*  38 */ "shift_expression ::= shift_expression LEFT_OP additive_expression",
 /*  39 */ "shift_expression ::= shift_expression RIGHT_OP additive_expression",
 /*  40 */ "relational_expression ::= shift_expression",
 /*  41 */ "relational_expression ::= relational_expression LANGLE shift_expression",
 /*  42 */ "relational_expression ::= relational_expression RANGLE shift_expression",
 /*  43 */ "relational_expression ::= relational_expression LE_OP shift_expression",
 /*  44 */ "relational_expression ::= relational_expression GE_OP shift_expression",
 /*  45 */ "equality_expression ::= relational_expression",
 /*  46 */ "equality_expression ::= equality_expression EQ_OP relational_expression",
 /*  47 */ "equality_expression ::= equality_expression NE_OP relational_expression",
 /*  48 */ "and_expression ::= equality_expression",
 /*  49 */ "and_expression ::= and_expression AMP equality_expression",
 /*  50 */ "exclusive_or_expression ::= and_expression",
 /*  51 */ "exclusive_or_expression ::= exclusive_or_expression CARET and_expression",
 /*  52 */ "inclusive_or_expression ::= exclusive_or_expression",
 /*  53 */ "inclusive_or_expression ::= inclusive_or_expression PIPE exclusive_or_expression",
 /*  54 */ "logical_and_expression ::= inclusive_or_expression",
 /*  55 */ "logical_and_expression ::= logical_and_expression AND_OP inclusive_or_expression",
 /*  56 */ "logical_or_expression ::= logical_and_expression",
 /*  57 */ "logical_or_expression ::= logical_or_expression OR_OP logical_and_expression",
 /*  58 */ "conditional_expression ::= logical_or_expression",
 /*  59 */ "conditional_expression ::= logical_or_expression QUESTION expression COLON conditional_expression",
 /*  60 */ "assignment_expression ::= conditional_expression",
 /*  61 */ "assignment_expression ::= unary_expression assignment_operator assignment_expression",
 /*  62 */ "assignment_operator ::= EQUALS",
 /*  63 */ "assignment_operator ::= MUL_ASSIGN",
 /*  64 */ "assignment_operator ::= DIV_ASSIGN",
 /*  65 */ "assignment_operator ::= MOD_ASSIGN",
 /*  66 */ "assignment_operator ::= ADD_ASSIGN",
 /*  67 */ "assignment_operator ::= SUB_ASSIGN",
 /*  68 */ "assignment_operator ::= LEFT_ASSIGN",
 /*  69 */ "assignment_operator ::= RIGHT_ASSIGN",
 /*  70 */ "assignment_operator ::= AND_ASSIGN",
 /*  71 */ "assignment_operator ::= XOR_ASSIGN",
 /*  72 */ "assignment_operator ::= OR_ASSIGN",
 /*  73 */ "expression ::= assignment_expression",
 /*  74 */ "expression ::= expression COMMA assignment_expression",
 /*  75 */ "constant_expression ::= conditional_expression",
 /*  76 */ "declaration ::= declaration_specifiers SEMIC",
 /*  77 */ "declaration ::= declaration_specifiers init_declarator_list SEMIC",
 /*  78 */ "declaration ::= error SEMIC",
 /*  79 */ "declaration ::= error RCURLY",
 /*  80 */ "declaration_specifiers ::= storage_class_specifier",
 /*  81 */ "declaration_specifiers ::= storage_class_specifier declaration_specifiers",
 /*  82 */ "declaration_specifiers ::= type_specifier",
 /*  83 */ "declaration_specifiers ::= type_specifier declaration_specifiers",
 /*  84 */ "declaration_specifiers ::= type_qualifier",
 /*  85 */ "declaration_specifiers ::= type_qualifier declaration_specifiers",
 /*  86 */ "init_declarator_list ::= init_declarator",
 /*  87 */ "init_declarator_list ::= init_declarator_list COMMA init_declarator",
 /*  88 */ "init_declarator ::= declarator",
 /*  89 */ "init_declarator ::= declarator EQUALS initializer",
 /*  90 */ "storage_class_specifier ::= TYPEDEF",
 /*  91 */ "storage_class_specifier ::= EXTERN",
 /*  92 */ "storage_class_specifier ::= STATIC",
 /*  93 */ "storage_class_specifier ::= AUTO",
 /*  94 */ "storage_class_specifier ::= REGISTER",
 /*  95 */ "type_specifier ::= VOID",
 /*  96 */ "type_specifier ::= CHAR",
 /*  97 */ "type_specifier ::= SHORT",
 /*  98 */ "type_specifier ::= INT",
 /*  99 */ "type_specifier ::= LONG",
 /* 100 */ "type_specifier ::= FLOAT",
 /* 101 */ "type_specifier ::= DOUBLE",
 /* 102 */ "type_specifier ::= SIGNED",
 /* 103 */ "type_specifier ::= UNSIGNED",
 /* 104 */ "type_specifier ::= struct_or_union_specifier",
 /* 105 */ "type_specifier ::= enum_specifier",
 /* 106 */ "type_specifier ::= TYPE_NAME",
 /* 107 */ "struct_or_union_specifier ::= struct_or_union IDENTIFIER LCURLY struct_declaration_list RCURLY",
 /* 108 */ "struct_or_union_specifier ::= struct_or_union LCURLY struct_declaration_list RCURLY",
 /* 109 */ "struct_or_union_specifier ::= struct_or_union IDENTIFIER",
 /* 110 */ "struct_or_union ::= STRUCT",
 /* 111 */ "struct_or_union ::= UNION",
 /* 112 */ "struct_declaration_list ::= struct_declaration",
 /* 113 */ "struct_declaration_list ::= struct_declaration_list struct_declaration",
 /* 114 */ "struct_declaration ::= specifier_qualifier_list struct_declarator_list SEMIC",
 /* 115 */ "specifier_qualifier_list ::= type_specifier specifier_qualifier_list",
 /* 116 */ "specifier_qualifier_list ::= type_specifier",
 /* 117 */ "specifier_qualifier_list ::= type_qualifier specifier_qualifier_list",
 /* 118 */ "specifier_qualifier_list ::= type_qualifier",
 /* 119 */ "struct_declarator_list ::= struct_declarator",
 /* 120 */ "struct_declarator_list ::= struct_declarator_list COMMA struct_declarator",
 /* 121 */ "struct_declarator ::= declarator",
 /* 122 */ "struct_declarator ::= COLON constant_expression",
 /* 123 */ "struct_declarator ::= declarator COLON constant_expression",
 /* 124 */ "enum_specifier ::= ENUM LCURLY enumerator_list RCURLY",
 /* 125 */ "enum_specifier ::= ENUM IDENTIFIER LCURLY enumerator_list RCURLY",
 /* 126 */ "enum_specifier ::= ENUM IDENTIFIER",
 /* 127 */ "enumerator_list ::= enumerator",
 /* 128 */ "enumerator_list ::= enumerator_list COMMA enumerator",
 /* 129 */ "enumerator ::= IDENTIFIER",
 /* 130 */ "enumerator ::= IDENTIFIER EQUALS constant_expression",
 /* 131 */ "type_qualifier ::= CONST",
 /* 132 */ "type_qualifier ::= VOLATILE",
 /* 133 */ "declarator ::= pointer direct_declarator",
 /* 134 */ "declarator ::= direct_declarator",
 /* 135 */ "direct_declarator ::= IDENTIFIER",
 /* 136 */ "direct_declarator ::= LPAREN declarator RPAREN",
 /* 137 */ "direct_declarator ::= direct_declarator LSQUARE constant_expression RSQUARE",
 /* 138 */ "direct_declarator ::= direct_declarator LSQUARE RSQUARE",
 /* 139 */ "direct_declarator ::= direct_declarator LPAREN parameter_type_list RPAREN",
 /* 140 */ "direct_declarator ::= direct_declarator LPAREN identifier_list RPAREN",
 /* 141 */ "direct_declarator ::= direct_declarator LPAREN RPAREN",
 /* 142 */ "pointer ::= STAR",
 /* 143 */ "pointer ::= STAR type_qualifier_list",
 /* 144 */ "pointer ::= STAR pointer",
 /* 145 */ "pointer ::= STAR type_qualifier_list pointer",
 /* 146 */ "type_qualifier_list ::= type_qualifier",
 /* 147 */ "type_qualifier_list ::= type_qualifier_list type_qualifier",
 /* 148 */ "parameter_type_list ::= parameter_list",
 /* 149 */ "parameter_type_list ::= parameter_list COMMA ELLIPSIS",
 /* 150 */ "parameter_list ::= parameter_declaration",
 /* 151 */ "parameter_list ::= parameter_list COMMA parameter_declaration",
 /* 152 */ "parameter_declaration ::= declaration_specifiers declarator",
 /* 153 */ "parameter_declaration ::= declaration_specifiers abstract_declarator",
 /* 154 */ "parameter_declaration ::= declaration_specifiers",
 /* 155 */ "identifier_list ::= IDENTIFIER",
 /* 156 */ "identifier_list ::= identifier_list COMMA IDENTIFIER",
 /* 157 */ "type_name ::= specifier_qualifier_list",
 /* 158 */ "type_name ::= specifier_qualifier_list abstract_declarator",
 /* 159 */ "abstract_declarator ::= pointer",
 /* 160 */ "abstract_declarator ::= direct_abstract_declarator",
 /* 161 */ "abstract_declarator ::= pointer direct_abstract_declarator",
 /* 162 */ "direct_abstract_declarator ::= LPAREN abstract_declarator RPAREN",
 /* 163 */ "direct_abstract_declarator ::= LSQUARE RSQUARE",
 /* 164 */ "direct_abstract_declarator ::= LSQUARE constant_expression RSQUARE",
 /* 165 */ "direct_abstract_declarator ::= direct_abstract_declarator LSQUARE RSQUARE",
 /* 166 */ "direct_abstract_declarator ::= direct_abstract_declarator LSQUARE constant_expression RSQUARE",
 /* 167 */ "direct_abstract_declarator ::= LPAREN RPAREN",
 /* 168 */ "direct_abstract_declarator ::= LPAREN parameter_type_list RPAREN",
 /* 169 */ "direct_abstract_declarator ::= direct_abstract_declarator LPAREN RPAREN",
 /* 170 */ "direct_abstract_declarator ::= direct_abstract_declarator LPAREN parameter_type_list RPAREN",
 /* 171 */ "initializer ::= assignment_expression",
 /* 172 */ "initializer ::= LCURLY initializer_list RCURLY",
 /* 173 */ "initializer ::= LCURLY initializer_list COMMA RCURLY",
 /* 174 */ "initializer_list ::= initializer",
 /* 175 */ "initializer_list ::= initializer_list COMMA initializer",
 /* 176 */ "statement ::= labeled_statement",
 /* 177 */ "statement ::= compound_statement",
 /* 178 */ "statement ::= expression_statement",
 /* 179 */ "statement ::= selection_statement",
 /* 180 */ "statement ::= iteration_statement",
 /* 181 */ "statement ::= jump_statement",
 /* 182 */ "labeled_statement ::= IDENTIFIER COLON statement",
 /* 183 */ "labeled_statement ::= CASE constant_expression COLON statement",
 /* 184 */ "labeled_statement ::= DEFAULT COLON statement",
 /* 185 */ "compound_statement ::= LCURLY RCURLY",
 /* 186 */ "compound_statement ::= LCURLY statement_list RCURLY",
 /* 187 */ "compound_statement ::= LCURLY declaration_list RCURLY",
 /* 188 */ "compound_statement ::= LCURLY declaration_list statement_list RCURLY",
 /* 189 */ "declaration_list ::= declaration",
 /* 190 */ "declaration_list ::= declaration_list declaration",
 /* 191 */ "statement_list ::= statement",
 /* 192 */ "statement_list ::= statement_list statement",
 /* 193 */ "expression_statement ::= SEMIC",
 /* 194 */ "expression_statement ::= expression SEMIC",
 /* 195 */ "selection_statement ::= IF LPAREN expression RPAREN statement",
 /* 196 */ "selection_statement ::= IF LPAREN expression RPAREN statement ELSE statement",
 /* 197 */ "selection_statement ::= SWITCH LPAREN expression RPAREN statement",
 /* 198 */ "iteration_statement ::= WHILE LPAREN expression RPAREN statement",
 /* 199 */ "iteration_statement ::= DO statement WHILE LPAREN expression RPAREN SEMIC",
 /* 200 */ "iteration_statement ::= FOR LPAREN expression_statement expression_statement RPAREN statement",
 /* 201 */ "iteration_statement ::= FOR LPAREN expression_statement expression_statement expression RPAREN statement",
 /* 202 */ "jump_statement ::= GOTO IDENTIFIER SEMIC",
 /* 203 */ "jump_statement ::= CONTINUE SEMIC",
 /* 204 */ "jump_statement ::= BREAK SEMIC",
 /* 205 */ "jump_statement ::= RETURN SEMIC",
 /* 206 */ "jump_statement ::= RETURN expression SEMIC",
 /* 207 */ "translation_unit ::= external_declaration",
 /* 208 */ "translation_unit ::= translation_unit external_declaration",
 /* 209 */ "external_declaration ::= function_definition",
 /* 210 */ "external_declaration ::= declaration",
 /* 211 */ "function_definition ::= declaration_specifiers declarator declaration_list compound_statement",
 /* 212 */ "function_definition ::= declaration_specifiers declarator compound_statement",
 /* 213 */ "function_definition ::= declarator declaration_list compound_statement",
 /* 214 */ "function_definition ::= declarator compound_statement",
    );

    /**
     * This function returns the symbolic name associated with a token
     * value.
     * @param int
     * @return string
     */
    function tokenName($tokenType)
    {
        if ($tokenType > 0 && $tokenType < count(self::$yyTokenName)) {
            return self::$yyTokenName[$tokenType];
        } else {
            return "Unknown";
        }
    }

    /* The following function deletes the value associated with a
    ** symbol.  The symbol can be either a terminal or nonterminal.
    ** "yymajor" is the symbol code, and "yypminor" is a pointer to
    ** the value.
    */
    static function yy_destructor($yymajor, $yypminor)
    {
        switch ($yymajor) {
        /* Here is inserted the actions which take place when a
        ** terminal or non-terminal is destroyed.  This can happen
        ** when the symbol is popped from the stack during a
        ** reduce or during error processing or when a parser is 
        ** being destroyed before it is finished parsing.
        **
        ** Note: during a reduce, the only symbols destroyed are those
        ** which appear on the RHS of the rule, but which are not used
        ** inside the C code.
        */
            default:  break;   /* If no destructor action specified: do nothing */
        }
    }

    /**
     * Pop the parser's stack once.
     *
     * If there is a destructor routine associated with the token which
     * is popped from the stack, then call it.
     *
     * Return the major token number for the symbol popped.
     * @param c_lang_yyParser
     * @return int
     */
    function yy_pop_parser_stack()
    {
        if (!count($this->yystack)) {
            return;
        }
        $yytos = array_pop($this->yystack);
        if (self::$yyTraceFILE && $this->yyidx >= 0) {
            fwrite(self::$yyTraceFILE,
                self::$yyTracePrompt . 'Popping ' . self::$yyTokenName[$yytos->major] .
                    "\n");
        }
        $yymajor = $yytos->major;
        self::yy_destructor($yymajor, $yytos->minor);
        $this->yyidx--;
        return $yymajor;
    }

    /**
     * Deallocate and destroy a parser.  Destructors are all called for
     * all stack elements before shutting the parser down.
     */
    function __destruct()
    {
        while ($this->yyidx >= 0) {
            $this->yy_pop_parser_stack();
        }
        if (is_resource(self::$yyTraceFILE)) {
            fclose(self::$yyTraceFILE);
        }
    }

    function yy_get_expected_tokens($token)
    {
        $state = $this->yystack[$this->yyidx]->stateno;
        $expected = self::$yyExpectedTokens[$state];
        if (in_array($token, self::$yyExpectedTokens[$state], true)) {
            return $expected;
        }
        $stack = $this->yystack;
        $yyidx = $this->yyidx;
        do {
            $yyact = $this->yy_find_shift_action($token);
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
                // reduce action
                $done = 0;
                do {
                    if ($done++ == 100) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // too much recursion prevents proper detection
                        // so give up
                        return array_unique($expected);
                    }
                    $yyruleno = $yyact - self::YYNSTATE;
                    $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
                    $nextstate = $this->yy_find_reduce_action(
                        $this->yystack[$this->yyidx]->stateno,
                        self::$yyRuleInfo[$yyruleno]['lhs']);
                    if (isset(self::$yyExpectedTokens[$nextstate])) {
                        $expected += self::$yyExpectedTokens[$nextstate];
                            if (in_array($token,
                                  self::$yyExpectedTokens[$nextstate], true)) {
                            $this->yyidx = $yyidx;
                            $this->yystack = $stack;
                            return array_unique($expected);
                        }
                    }
                    if ($nextstate < self::YYNSTATE) {
                        // we need to shift a non-terminal
                        $this->yyidx++;
                        $x = new c_lang_yyStackEntry;
                        $x->stateno = $nextstate;
                        $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
                        $this->yystack[$this->yyidx] = $x;
                        continue 2;
                    } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // the last token was just ignored, we can't accept
                        // by ignoring input, this is in essence ignoring a
                        // syntax error!
                        return array_unique($expected);
                    } elseif ($nextstate === self::YY_NO_ACTION) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // input accepted, but not shifted (I guess)
                        return $expected;
                    } else {
                        $yyact = $nextstate;
                    }
                } while (true);
            }
            break;
        } while (true);
        return array_unique($expected);
    }

    function yy_is_expected_token($token)
    {
        $state = $this->yystack[$this->yyidx]->stateno;
        if (in_array($token, self::$yyExpectedTokens[$state], true)) {
            return true;
        }
        $stack = $this->yystack;
        $yyidx = $this->yyidx;
        do {
            $yyact = $this->yy_find_shift_action($token);
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
                // reduce action
                $done = 0;
                do {
                    if ($done++ == 100) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // too much recursion prevents proper detection
                        // so give up
                        return true;
                    }
                    $yyruleno = $yyact - self::YYNSTATE;
                    $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
                    $nextstate = $this->yy_find_reduce_action(
                        $this->yystack[$this->yyidx]->stateno,
                        self::$yyRuleInfo[$yyruleno]['lhs']);
                    if (isset(self::$yyExpectedTokens[$nextstate]) &&
                          in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        return true;
                    }
                    if ($nextstate < self::YYNSTATE) {
                        // we need to shift a non-terminal
                        $this->yyidx++;
                        $x = new c_lang_yyStackEntry;
                        $x->stateno = $nextstate;
                        $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
                        $this->yystack[$this->yyidx] = $x;
                        continue 2;
                    } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        if (!$token) {
                            // end of input: this is valid
                            return true;
                        }
                        // the last token was just ignored, we can't accept
                        // by ignoring input, this is in essence ignoring a
                        // syntax error!
                        return false;
                    } elseif ($nextstate === self::YY_NO_ACTION) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // input accepted, but not shifted (I guess)
                        return true;
                    } else {
                        $yyact = $nextstate;
                    }
                } while (true);
            }
            break;
        } while (true);
        return true;
    }

    /**
     * Find the appropriate action for a parser given the terminal
     * look-ahead token iLookAhead.
     *
     * If the look-ahead token is YYNOCODE, then check to see if the action is
     * independent of the look-ahead.  If it is, return the action, otherwise
     * return YY_NO_ACTION.
     * @param int The look-ahead token
     */
    function yy_find_shift_action($iLookAhead)
    {
        $stateno = $this->yystack[$this->yyidx]->stateno;
     
        /* if ($this->yyidx < 0) return self::YY_NO_ACTION;  */
        if (!isset(self::$yy_shift_ofst[$stateno])) {
            // no shift actions
            return self::$yy_default[$stateno];
        }
        $i = self::$yy_shift_ofst[$stateno];
        if ($i === self::YY_SHIFT_USE_DFLT) {
            return self::$yy_default[$stateno];
        }
        if ($iLookAhead == self::YYNOCODE) {
            return self::YY_NO_ACTION;
        }
        $i += $iLookAhead;
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
              self::$yy_lookahead[$i] != $iLookAhead) {
            if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
                   && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
                if (self::$yyTraceFILE) {
                    fwrite(self::$yyTraceFILE, self::$yyTracePrompt . "FALLBACK " .
                        self::$yyTokenName[$iLookAhead] . " => " .
                        self::$yyTokenName[$iFallback] . "\n");
                }
                return $this->yy_find_shift_action($iFallback);
            }
            return self::$yy_default[$stateno];
        } else {
            return self::$yy_action[$i];
        }
    }

    /**
     * Find the appropriate action for a parser given the non-terminal
     * look-ahead token iLookAhead.
     *
     * If the look-ahead token is YYNOCODE, then check to see if the action is
     * independent of the look-ahead.  If it is, return the action, otherwise
     * return YY_NO_ACTION.
     * @param int Current state number
     * @param int The look-ahead token
     */
    function yy_find_reduce_action($stateno, $iLookAhead)
    {
        /* $stateno = $this->yystack[$this->yyidx]->stateno; */

        if (!isset(self::$yy_reduce_ofst[$stateno])) {
            return self::$yy_default[$stateno];
        }
        $i = self::$yy_reduce_ofst[$stateno];
        if ($i == self::YY_REDUCE_USE_DFLT) {
            return self::$yy_default[$stateno];
        }
        if ($iLookAhead == self::YYNOCODE) {
            return self::YY_NO_ACTION;
        }
        $i += $iLookAhead;
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
              self::$yy_lookahead[$i] != $iLookAhead) {
            return self::$yy_default[$stateno];
        } else {
            return self::$yy_action[$i];
        }
    }

    /**
     * Perform a shift action.
     * @param int The new state to shift in
     * @param int The major token to shift in
     * @param mixed the minor token to shift in
     */
    function yy_shift($yyNewState, $yyMajor, $yypMinor)
    {
        $this->yyidx++;
        if ($this->yyidx >= self::YYSTACKDEPTH) {
            $this->yyidx--;
            if (self::$yyTraceFILE) {
                fprintf(self::$yyTraceFILE, "%sStack Overflow!\n", self::$yyTracePrompt);
            }
            while ($this->yyidx >= 0) {
                $this->yy_pop_parser_stack();
            }
            /* Here code is inserted which will execute if the parser
            ** stack ever overflows */
            return;
        }
        $yytos = new c_lang_yyStackEntry;
        $yytos->stateno = $yyNewState;
        $yytos->major = $yyMajor;
        $yytos->minor = $yypMinor;
        array_push($this->yystack, $yytos);
        if (self::$yyTraceFILE && $this->yyidx > 0) {
            fprintf(self::$yyTraceFILE, "%sShift %d\n", self::$yyTracePrompt,
                $yyNewState);
            fprintf(self::$yyTraceFILE, "%sStack:", self::$yyTracePrompt);
            for($i = 1; $i <= $this->yyidx; $i++) {
                fprintf(self::$yyTraceFILE, " %s",
                    self::$yyTokenName[$this->yystack[$i]->major]);
            }
            fwrite(self::$yyTraceFILE,"\n");
        }
    }

    /**
     * The following table contains information about every rule that
     * is used during the reduce.
     *
     * static const struct {
     *  YYCODETYPE lhs;         Symbol on the left-hand side of the rule
     *  unsigned char nrhs;     Number of right-hand side symbols in the rule
     * } 
     */
    static public $yyRuleInfo = array(
  array( 'lhs' => 85, 'rhs' => 1 ),
  array( 'lhs' => 87, 'rhs' => 1 ),
  array( 'lhs' => 87, 'rhs' => 1 ),
  array( 'lhs' => 87, 'rhs' => 1 ),
  array( 'lhs' => 87, 'rhs' => 3 ),
  array( 'lhs' => 87, 'rhs' => 3 ),
  array( 'lhs' => 89, 'rhs' => 1 ),
  array( 'lhs' => 89, 'rhs' => 4 ),
  array( 'lhs' => 89, 'rhs' => 3 ),
  array( 'lhs' => 89, 'rhs' => 4 ),
  array( 'lhs' => 89, 'rhs' => 3 ),
  array( 'lhs' => 89, 'rhs' => 3 ),
  array( 'lhs' => 89, 'rhs' => 2 ),
  array( 'lhs' => 89, 'rhs' => 2 ),
  array( 'lhs' => 90, 'rhs' => 1 ),
  array( 'lhs' => 90, 'rhs' => 3 ),
  array( 'lhs' => 92, 'rhs' => 1 ),
  array( 'lhs' => 92, 'rhs' => 2 ),
  array( 'lhs' => 92, 'rhs' => 2 ),
  array( 'lhs' => 92, 'rhs' => 2 ),
  array( 'lhs' => 92, 'rhs' => 2 ),
  array( 'lhs' => 92, 'rhs' => 4 ),
  array( 'lhs' => 93, 'rhs' => 1 ),
  array( 'lhs' => 93, 'rhs' => 1 ),
  array( 'lhs' => 93, 'rhs' => 1 ),
  array( 'lhs' => 93, 'rhs' => 1 ),
  array( 'lhs' => 93, 'rhs' => 1 ),
  array( 'lhs' => 93, 'rhs' => 1 ),
  array( 'lhs' => 94, 'rhs' => 1 ),
  array( 'lhs' => 94, 'rhs' => 4 ),
  array( 'lhs' => 96, 'rhs' => 1 ),
  array( 'lhs' => 96, 'rhs' => 3 ),
  array( 'lhs' => 96, 'rhs' => 3 ),
  array( 'lhs' => 96, 'rhs' => 3 ),
  array( 'lhs' => 97, 'rhs' => 1 ),
  array( 'lhs' => 97, 'rhs' => 3 ),
  array( 'lhs' => 97, 'rhs' => 3 ),
  array( 'lhs' => 98, 'rhs' => 1 ),
  array( 'lhs' => 98, 'rhs' => 3 ),
  array( 'lhs' => 98, 'rhs' => 3 ),
  array( 'lhs' => 99, 'rhs' => 1 ),
  array( 'lhs' => 99, 'rhs' => 3 ),
  array( 'lhs' => 99, 'rhs' => 3 ),
  array( 'lhs' => 99, 'rhs' => 3 ),
  array( 'lhs' => 99, 'rhs' => 3 ),
  array( 'lhs' => 100, 'rhs' => 1 ),
  array( 'lhs' => 100, 'rhs' => 3 ),
  array( 'lhs' => 100, 'rhs' => 3 ),
  array( 'lhs' => 101, 'rhs' => 1 ),
  array( 'lhs' => 101, 'rhs' => 3 ),
  array( 'lhs' => 102, 'rhs' => 1 ),
  array( 'lhs' => 102, 'rhs' => 3 ),
  array( 'lhs' => 103, 'rhs' => 1 ),
  array( 'lhs' => 103, 'rhs' => 3 ),
  array( 'lhs' => 104, 'rhs' => 1 ),
  array( 'lhs' => 104, 'rhs' => 3 ),
  array( 'lhs' => 105, 'rhs' => 1 ),
  array( 'lhs' => 105, 'rhs' => 3 ),
  array( 'lhs' => 106, 'rhs' => 1 ),
  array( 'lhs' => 106, 'rhs' => 5 ),
  array( 'lhs' => 91, 'rhs' => 1 ),
  array( 'lhs' => 91, 'rhs' => 3 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 107, 'rhs' => 1 ),
  array( 'lhs' => 88, 'rhs' => 1 ),
  array( 'lhs' => 88, 'rhs' => 3 ),
  array( 'lhs' => 108, 'rhs' => 1 ),
  array( 'lhs' => 109, 'rhs' => 2 ),
  array( 'lhs' => 109, 'rhs' => 3 ),
  array( 'lhs' => 109, 'rhs' => 2 ),
  array( 'lhs' => 109, 'rhs' => 2 ),
  array( 'lhs' => 110, 'rhs' => 1 ),
  array( 'lhs' => 110, 'rhs' => 2 ),
  array( 'lhs' => 110, 'rhs' => 1 ),
  array( 'lhs' => 110, 'rhs' => 2 ),
  array( 'lhs' => 110, 'rhs' => 1 ),
  array( 'lhs' => 110, 'rhs' => 2 ),
  array( 'lhs' => 111, 'rhs' => 1 ),
  array( 'lhs' => 111, 'rhs' => 3 ),
  array( 'lhs' => 115, 'rhs' => 1 ),
  array( 'lhs' => 115, 'rhs' => 3 ),
  array( 'lhs' => 112, 'rhs' => 1 ),
  array( 'lhs' => 112, 'rhs' => 1 ),
  array( 'lhs' => 112, 'rhs' => 1 ),
  array( 'lhs' => 112, 'rhs' => 1 ),
  array( 'lhs' => 112, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 113, 'rhs' => 1 ),
  array( 'lhs' => 118, 'rhs' => 5 ),
  array( 'lhs' => 118, 'rhs' => 4 ),
  array( 'lhs' => 118, 'rhs' => 2 ),
  array( 'lhs' => 120, 'rhs' => 1 ),
  array( 'lhs' => 120, 'rhs' => 1 ),
  array( 'lhs' => 121, 'rhs' => 1 ),
  array( 'lhs' => 121, 'rhs' => 2 ),
  array( 'lhs' => 122, 'rhs' => 3 ),
  array( 'lhs' => 123, 'rhs' => 2 ),
  array( 'lhs' => 123, 'rhs' => 1 ),
  array( 'lhs' => 123, 'rhs' => 2 ),
  array( 'lhs' => 123, 'rhs' => 1 ),
  array( 'lhs' => 124, 'rhs' => 1 ),
  array( 'lhs' => 124, 'rhs' => 3 ),
  array( 'lhs' => 125, 'rhs' => 1 ),
  array( 'lhs' => 125, 'rhs' => 2 ),
  array( 'lhs' => 125, 'rhs' => 3 ),
  array( 'lhs' => 119, 'rhs' => 4 ),
  array( 'lhs' => 119, 'rhs' => 5 ),
  array( 'lhs' => 119, 'rhs' => 2 ),
  array( 'lhs' => 126, 'rhs' => 1 ),
  array( 'lhs' => 126, 'rhs' => 3 ),
  array( 'lhs' => 127, 'rhs' => 1 ),
  array( 'lhs' => 127, 'rhs' => 3 ),
  array( 'lhs' => 114, 'rhs' => 1 ),
  array( 'lhs' => 114, 'rhs' => 1 ),
  array( 'lhs' => 116, 'rhs' => 2 ),
  array( 'lhs' => 116, 'rhs' => 1 ),
  array( 'lhs' => 129, 'rhs' => 1 ),
  array( 'lhs' => 129, 'rhs' => 3 ),
  array( 'lhs' => 129, 'rhs' => 4 ),
  array( 'lhs' => 129, 'rhs' => 3 ),
  array( 'lhs' => 129, 'rhs' => 4 ),
  array( 'lhs' => 129, 'rhs' => 4 ),
  array( 'lhs' => 129, 'rhs' => 3 ),
  array( 'lhs' => 128, 'rhs' => 1 ),
  array( 'lhs' => 128, 'rhs' => 2 ),
  array( 'lhs' => 128, 'rhs' => 2 ),
  array( 'lhs' => 128, 'rhs' => 3 ),
  array( 'lhs' => 132, 'rhs' => 1 ),
  array( 'lhs' => 132, 'rhs' => 2 ),
  array( 'lhs' => 130, 'rhs' => 1 ),
  array( 'lhs' => 130, 'rhs' => 3 ),
  array( 'lhs' => 133, 'rhs' => 1 ),
  array( 'lhs' => 133, 'rhs' => 3 ),
  array( 'lhs' => 134, 'rhs' => 2 ),
  array( 'lhs' => 134, 'rhs' => 2 ),
  array( 'lhs' => 134, 'rhs' => 1 ),
  array( 'lhs' => 131, 'rhs' => 1 ),
  array( 'lhs' => 131, 'rhs' => 3 ),
  array( 'lhs' => 95, 'rhs' => 1 ),
  array( 'lhs' => 95, 'rhs' => 2 ),
  array( 'lhs' => 135, 'rhs' => 1 ),
  array( 'lhs' => 135, 'rhs' => 1 ),
  array( 'lhs' => 135, 'rhs' => 2 ),
  array( 'lhs' => 136, 'rhs' => 3 ),
  array( 'lhs' => 136, 'rhs' => 2 ),
  array( 'lhs' => 136, 'rhs' => 3 ),
  array( 'lhs' => 136, 'rhs' => 3 ),
  array( 'lhs' => 136, 'rhs' => 4 ),
  array( 'lhs' => 136, 'rhs' => 2 ),
  array( 'lhs' => 136, 'rhs' => 3 ),
  array( 'lhs' => 136, 'rhs' => 3 ),
  array( 'lhs' => 136, 'rhs' => 4 ),
  array( 'lhs' => 117, 'rhs' => 1 ),
  array( 'lhs' => 117, 'rhs' => 3 ),
  array( 'lhs' => 117, 'rhs' => 4 ),
  array( 'lhs' => 137, 'rhs' => 1 ),
  array( 'lhs' => 137, 'rhs' => 3 ),
  array( 'lhs' => 138, 'rhs' => 1 ),
  array( 'lhs' => 138, 'rhs' => 1 ),
  array( 'lhs' => 138, 'rhs' => 1 ),
  array( 'lhs' => 138, 'rhs' => 1 ),
  array( 'lhs' => 138, 'rhs' => 1 ),
  array( 'lhs' => 138, 'rhs' => 1 ),
  array( 'lhs' => 139, 'rhs' => 3 ),
  array( 'lhs' => 139, 'rhs' => 4 ),
  array( 'lhs' => 139, 'rhs' => 3 ),
  array( 'lhs' => 140, 'rhs' => 2 ),
  array( 'lhs' => 140, 'rhs' => 3 ),
  array( 'lhs' => 140, 'rhs' => 3 ),
  array( 'lhs' => 140, 'rhs' => 4 ),
  array( 'lhs' => 146, 'rhs' => 1 ),
  array( 'lhs' => 146, 'rhs' => 2 ),
  array( 'lhs' => 145, 'rhs' => 1 ),
  array( 'lhs' => 145, 'rhs' => 2 ),
  array( 'lhs' => 141, 'rhs' => 1 ),
  array( 'lhs' => 141, 'rhs' => 2 ),
  array( 'lhs' => 142, 'rhs' => 5 ),
  array( 'lhs' => 142, 'rhs' => 7 ),
  array( 'lhs' => 142, 'rhs' => 5 ),
  array( 'lhs' => 143, 'rhs' => 5 ),
  array( 'lhs' => 143, 'rhs' => 7 ),
  array( 'lhs' => 143, 'rhs' => 6 ),
  array( 'lhs' => 143, 'rhs' => 7 ),
  array( 'lhs' => 144, 'rhs' => 3 ),
  array( 'lhs' => 144, 'rhs' => 2 ),
  array( 'lhs' => 144, 'rhs' => 2 ),
  array( 'lhs' => 144, 'rhs' => 2 ),
  array( 'lhs' => 144, 'rhs' => 3 ),
  array( 'lhs' => 86, 'rhs' => 1 ),
  array( 'lhs' => 86, 'rhs' => 2 ),
  array( 'lhs' => 147, 'rhs' => 1 ),
  array( 'lhs' => 147, 'rhs' => 1 ),
  array( 'lhs' => 148, 'rhs' => 4 ),
  array( 'lhs' => 148, 'rhs' => 3 ),
  array( 'lhs' => 148, 'rhs' => 3 ),
  array( 'lhs' => 148, 'rhs' => 2 ),
    );

    /**
     * The following table contains a mapping of reduce action to method name
     * that handles the reduction.
     * 
     * If a rule is not set, it has no handler.
     */
    static public $yyReduceMap = array(
        0 => 0,
        1 => 1,
        2 => 1,
        3 => 1,
        4 => 4,
        5 => 4,
        6 => 6,
        7 => 7,
        9 => 7,
        8 => 8,
        10 => 8,
        11 => 8,
        12 => 12,
        13 => 12,
        14 => 14,
        15 => 15,
        16 => 16,
        17 => 17,
        18 => 17,
        20 => 17,
        19 => 19,
        21 => 21,
        22 => 22,
        23 => 22,
        24 => 22,
        25 => 22,
        26 => 22,
        27 => 22,
        28 => 28,
        29 => 29,
        30 => 30,
        31 => 31,
        32 => 31,
        33 => 31,
        34 => 34,
        35 => 35,
        36 => 35,
        37 => 37,
        38 => 38,
        39 => 38,
        40 => 40,
        41 => 41,
        42 => 41,
        43 => 41,
        44 => 41,
        45 => 45,
        46 => 46,
        47 => 46,
        48 => 48,
        49 => 49,
        50 => 50,
        51 => 51,
        52 => 52,
        53 => 53,
        54 => 54,
        55 => 55,
        56 => 56,
        57 => 57,
        58 => 58,
        59 => 59,
        60 => 60,
        61 => 61,
        62 => 62,
        63 => 62,
        64 => 62,
        65 => 62,
        66 => 62,
        67 => 62,
        68 => 62,
        69 => 62,
        70 => 62,
        71 => 62,
        72 => 62,
        73 => 73,
        74 => 74,
        75 => 75,
        76 => 76,
        78 => 76,
        79 => 76,
        77 => 77,
        80 => 80,
        82 => 80,
        84 => 80,
        81 => 81,
        83 => 81,
        85 => 81,
        86 => 86,
        87 => 87,
        88 => 88,
        89 => 89,
        90 => 90,
        91 => 90,
        92 => 90,
        93 => 90,
        94 => 90,
        95 => 95,
        96 => 95,
        97 => 95,
        98 => 95,
        99 => 95,
        100 => 95,
        101 => 95,
        102 => 95,
        103 => 95,
        106 => 95,
        104 => 104,
        105 => 104,
        107 => 107,
        108 => 108,
        109 => 109,
        110 => 110,
        111 => 110,
        112 => 112,
        113 => 113,
        114 => 114,
        115 => 115,
        117 => 115,
        116 => 116,
        118 => 116,
        119 => 119,
        120 => 120,
        121 => 121,
        122 => 122,
        123 => 123,
        124 => 124,
        125 => 125,
        126 => 126,
        127 => 127,
        128 => 128,
        129 => 129,
        130 => 130,
        131 => 131,
        132 => 131,
        133 => 133,
        134 => 134,
        135 => 135,
        136 => 136,
        137 => 137,
        139 => 137,
        140 => 137,
        138 => 138,
        141 => 138,
        142 => 142,
        143 => 143,
        144 => 143,
        145 => 145,
        146 => 146,
        147 => 147,
        148 => 148,
        149 => 149,
        150 => 150,
        151 => 151,
        152 => 152,
        153 => 152,
        154 => 154,
        155 => 155,
        156 => 156,
        157 => 157,
        158 => 158,
        159 => 159,
        160 => 159,
        161 => 161,
        162 => 162,
        164 => 162,
        168 => 162,
        163 => 163,
        167 => 163,
        165 => 165,
        169 => 165,
        166 => 166,
        170 => 166,
        171 => 171,
        172 => 172,
        173 => 173,
        174 => 174,
        175 => 175,
        176 => 176,
        177 => 176,
        178 => 176,
        179 => 176,
        180 => 176,
        181 => 176,
        182 => 182,
        184 => 182,
        183 => 183,
        185 => 185,
        186 => 186,
        187 => 186,
        188 => 188,
        189 => 189,
        190 => 190,
        191 => 191,
        192 => 192,
        193 => 193,
        194 => 194,
        195 => 195,
        197 => 195,
        196 => 196,
        198 => 198,
        199 => 199,
        200 => 200,
        201 => 201,
        202 => 202,
        203 => 203,
        204 => 203,
        205 => 203,
        206 => 206,
        207 => 207,
        208 => 208,
        209 => 209,
        210 => 209,
        211 => 211,
        212 => 212,
        213 => 212,
        214 => 214,
    );
    /* Beginning here are the reduction cases.  A typical example
    ** follows:
    **  #line <lineno> <grammarfile>
    **   function yy_r0($yymsp){ ... }           // User supplied code
    **  #line <lineno> <thisfile>
    */
#line 79 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r0(){ $this->ast = new block_formal_langs_ast($this->yystack[$this->yyidx + 0]->minor);     }
#line 2369 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 81 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r1(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("primary_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2378 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 102 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r4(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("primary_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2391 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 125 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r6(){
    $result = new block_formal_langs_ast_node_base("postfix_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2399 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 131 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r7(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("postfix_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2413 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 143 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r8(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("postfix_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2426 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 188 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r12(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("postfix_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2437 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 207 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r14(){
    $result = new block_formal_langs_ast_node_base("argument_expression_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2445 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 213 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r15(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("argument_expression_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2457 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 224 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r16(){
    $result = new block_formal_langs_ast_node_base("unary_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2465 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 230 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r17(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("unary_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2476 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 248 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r19(){
    $result = new block_formal_langs_ast_node_base("unary_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2486 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 265 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r21(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("unary_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2501 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 279 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r22(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("unary_operator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2510 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 322 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r28(){
    $result = new block_formal_langs_ast_node_base("cast_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2518 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 328 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r29(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("cast_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2532 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 341 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r30(){
    $result = new block_formal_langs_ast_node_base("multiplicative_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2540 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 347 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r31(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("multiplicative_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2552 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 378 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r34(){
    $result = new block_formal_langs_ast_node_base("additive_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2560 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 384 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r35(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("additive_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2572 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 405 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r37(){
    $result = new block_formal_langs_ast_node_base("shift_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2580 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 411 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r38(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("shift_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2592 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 432 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r40(){
    $result = new block_formal_langs_ast_node_base("relational_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2600 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 438 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r41(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("relational_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2612 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 479 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r45(){
    $result = new block_formal_langs_ast_node_base("equality_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2620 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 485 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r46(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("equality_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2632 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 506 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r48(){
    $result = new block_formal_langs_ast_node_base("and_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2640 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 512 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r49(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("and_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2652 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 523 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r50(){
    $result = new block_formal_langs_ast_node_base("exclusive_or_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2660 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 529 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r51(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("exclusive_or_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2672 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 540 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r52(){
    $result = new block_formal_langs_ast_node_base("inclusive_or_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2680 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 546 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r53(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("inclusive_or_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2692 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 557 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r54(){
    $result = new block_formal_langs_ast_node_base("logical_and_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2700 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 563 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r55(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("logical_and_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2712 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 574 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r56(){
    $result = new block_formal_langs_ast_node_base("logical_or_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2720 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 580 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r57(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("logical_or_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2732 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 591 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r58(){
    $result = new block_formal_langs_ast_node_base("conditional_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2740 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 597 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r59(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("conditional_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2755 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 611 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r60(){
    $result = new block_formal_langs_ast_node_base("assignment_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2763 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 617 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r61(){
    $result = new block_formal_langs_ast_node_base("assignment_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2774 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 627 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r62(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("assignment_operator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2783 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 705 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r73(){
    $result = new block_formal_langs_ast_node_base("expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2791 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 711 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r74(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2803 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 722 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r75(){
    $result = new block_formal_langs_ast_node_base("constant_expression", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2811 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 729 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r76(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("declaration", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2822 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 738 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r77(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("declaration", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2834 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 767 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r80(){
    $result = new block_formal_langs_ast_node_base("declaration_specifiers", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2842 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 773 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r81(){
    $result = new block_formal_langs_ast_node_base("declaration_specifiers", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2852 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 810 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r86(){
    $result = new block_formal_langs_ast_node_base("init_declarator_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2860 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 816 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r87(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("init_declarator_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2872 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 827 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r88(){
    $result = new block_formal_langs_ast_node_base("init_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2880 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 833 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r89(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("init_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2892 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 844 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r90(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("storage_class_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2901 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 880 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r95(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("type_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2910 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 943 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r104(){
    $result = new block_formal_langs_ast_node_base("type_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2918 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 963 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r107(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_or_union_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2934 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 977 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r108(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_or_union_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2948 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 989 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r109(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_or_union_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2959 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 999 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r110(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_or_union", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2968 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1014 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r112(){
    $result = new block_formal_langs_ast_node_base("struct_declaration_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 2976 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1020 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r113(){
    $result = new block_formal_langs_ast_node_base("struct_declaration_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2986 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1029 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r114(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_declaration", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 2998 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1040 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r115(){
    $result = new block_formal_langs_ast_node_base("specifier_qualifier_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3008 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1048 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r116(){
    $result = new block_formal_langs_ast_node_base("specifier_qualifier_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3016 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1069 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r119(){
    $result = new block_formal_langs_ast_node_base("struct_declarator_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3024 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1075 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r120(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_declarator_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3036 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1086 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r121(){
    $result = new block_formal_langs_ast_node_base("struct_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3044 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1092 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r122(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3055 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1101 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r123(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("struct_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3067 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1112 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r124(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("enum_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3082 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1125 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r125(){
    $this->yystack[$this->yyidx + -4]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("enum_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3099 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1140 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r126(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("enum_specifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3111 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1151 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r127(){
    $result = new block_formal_langs_ast_node_base("enumerator_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3119 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1157 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r128(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("enumerator_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3131 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1168 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r129(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("enumerator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3140 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1175 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r130(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("enumerator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3153 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1187 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r131(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("type_qualifier", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3162 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1202 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r133(){
    $result = new block_formal_langs_ast_node_base("declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3172 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1210 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r134(){
    $result = new block_formal_langs_ast_node_base("declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3180 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1217 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r135(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3189 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1224 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r136(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3202 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1235 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r137(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3216 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1247 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r138(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3229 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1294 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r142(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("pointer", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3238 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1301 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r143(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("pointer", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3249 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1319 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r145(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("pointer", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3261 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1330 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r146(){
    $result = new block_formal_langs_ast_node_base("type_qualifier_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3269 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1336 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r147(){
    $result = new block_formal_langs_ast_node_base("type_qualifier_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3279 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1345 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r148(){
    $result = new block_formal_langs_ast_node_base("parameter_type_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3287 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1351 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r149(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("parameter_type_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3300 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1363 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r150(){
    $result = new block_formal_langs_ast_node_base("parameter_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3308 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1369 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r151(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("parameter_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3320 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1380 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r152(){
    $result = new block_formal_langs_ast_node_base("parameter_declaration", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3330 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1396 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r154(){
    $result = new block_formal_langs_ast_node_base("parameter_declaration", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3338 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1403 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r155(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("identifier_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3347 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1410 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r156(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("identifier_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3360 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1422 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r157(){
    $result = new block_formal_langs_ast_node_base("type_name", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3368 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1428 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r158(){
    $result = new block_formal_langs_ast_node_base("type_name", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3378 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1437 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r159(){
    $result = new block_formal_langs_ast_node_base("abstract_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3386 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1449 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r161(){
    $result = new block_formal_langs_ast_node_base("abstract_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3396 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1458 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r162(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_abstract_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3409 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1469 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r163(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_abstract_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3421 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1490 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r165(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_abstract_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3434 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1501 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r166(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("direct_abstract_declarator", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3448 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1558 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r171(){
    $result = new block_formal_langs_ast_node_base("initializer", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3456 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1564 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r172(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("initializer", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3469 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1575 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r173(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("initializer", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3484 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1589 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r174(){
    $result = new block_formal_langs_ast_node_base("initializer_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3492 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1595 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r175(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("initializer_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3504 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1606 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r176(){
    $result = new block_formal_langs_ast_node_base("statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3512 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1643 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r182(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("labeled_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3525 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1654 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r183(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("labeled_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3539 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1678 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r185(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("compound_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3551 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1688 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r186(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("compound_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3564 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1710 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r188(){
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("compound_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3578 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1723 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r189(){
    $result = new block_formal_langs_ast_node_base("declaration_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3586 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1729 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r190(){
    $result = new block_formal_langs_ast_node_base("declaration_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3596 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1738 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r191(){
    $result = new block_formal_langs_ast_node_base("statement_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3604 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1744 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r192(){
    $result = new block_formal_langs_ast_node_base("statement_list", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3614 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1753 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r193(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("expression_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3623 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1760 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r194(){
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("expression_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3634 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1770 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r195(){
    $this->yystack[$this->yyidx + -4]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("selection_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3650 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1784 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r196(){
    $this->yystack[$this->yyidx + -6]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -5]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("selection_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -6]->minor);
    $result->add_child($this->yystack[$this->yyidx + -5]->minor);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -6]->minor->position(), $this->yystack[$this->yyidx + -5]->minor->position(), $this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3669 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1816 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r198(){
    $this->yystack[$this->yyidx + -4]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("iteration_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3685 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1830 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r199(){
    $this->yystack[$this->yyidx + -6]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -4]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -3]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("iteration_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -6]->minor);
    $result->add_child($this->yystack[$this->yyidx + -5]->minor);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -6]->minor->position(), $this->yystack[$this->yyidx + -5]->minor->position(), $this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3705 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1848 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r200(){
    $this->yystack[$this->yyidx + -5]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -4]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("iteration_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -5]->minor);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -5]->minor->position(), $this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3722 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1863 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r201(){
    $this->yystack[$this->yyidx + -6]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -5]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("iteration_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -6]->minor);
    $result->add_child($this->yystack[$this->yyidx + -5]->minor);
    $result->add_child($this->yystack[$this->yyidx + -4]->minor);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -6]->minor->position(), $this->yystack[$this->yyidx + -5]->minor->position(), $this->yystack[$this->yyidx + -4]->minor->position(), $this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3740 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1880 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r202(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("jump_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3754 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1892 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r203(){
    $this->yystack[$this->yyidx + -1]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("jump_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3766 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1922 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r206(){
    $this->yystack[$this->yyidx + -2]->minor->set_number($this->node_num++);
    $this->yystack[$this->yyidx + 0]->minor->set_number($this->node_num++);
    $result = new block_formal_langs_ast_node_base("jump_statement", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3779 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1934 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r207(){
    $result = new block_formal_langs_ast_node_base("translation_unit", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3787 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1940 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r208(){
    $result = new block_formal_langs_ast_node_base("translation_unit", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3797 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1949 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r209(){
    $result = new block_formal_langs_ast_node_base("external_declaration", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $result->set_position($this->yystack[$this->yyidx + 0]->minor->position());
    $this->_retvalue = $result;
    }
#line 3805 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1962 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r211(){
    $result = new block_formal_langs_ast_node_base("function_definition", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -3]->minor);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -3]->minor->position(), $this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3817 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1972 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r212(){
    $result = new block_formal_langs_ast_node_base("function_definition", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -2]->minor);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -2]->minor->position(), $this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3828 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
#line 1990 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"
    function yy_r214(){
    $result = new block_formal_langs_ast_node_base("function_definition", $this->node_num++);
    $result->add_child($this->yystack[$this->yyidx + -1]->minor);
    $result->add_child($this->yystack[$this->yyidx + 0]->minor);
    $positions = array($this->yystack[$this->yyidx + -1]->minor->position(), $this->yystack[$this->yyidx + 0]->minor->position());
    $result->set_position(block_formal_langs_node_position::summ($positions));
    $this->_retvalue = $result;
    }
#line 3838 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"

    /**
     * placeholder for the left hand side in a reduce operation.
     * 
     * For a parser with a rule like this:
     * <pre>
     * rule(A) ::= B. { A = 1; }
     * </pre>
     * 
     * The parser will translate to something like:
     * 
     * <code>
     * function yy_r0(){$this->_retvalue = 1;}
     * </code>
     */
    private $_retvalue;

    /**
     * Perform a reduce action and the shift that must immediately
     * follow the reduce.
     * 
     * For a rule such as:
     * 
     * <pre>
     * A ::= B blah C. { dosomething(); }
     * </pre>
     * 
     * This function will first call the action, if any, ("dosomething();" in our
     * example), and then it will pop three states from the stack,
     * one for each entry on the right-hand side of the expression
     * (B, blah, and C in our example rule), and then push the result of the action
     * back on to the stack with the resulting state reduced to (as described in the .out
     * file)
     * @param int Number of the rule by which to reduce
     */
    function yy_reduce($yyruleno)
    {
        //int $yygoto;                     /* The next state */
        //int $yyact;                      /* The next action */
        //mixed $yygotominor;        /* The LHS of the rule reduced */
        //c_lang_yyStackEntry $yymsp;            /* The top of the parser's stack */
        //int $yysize;                     /* Amount to pop the stack */
        $yymsp = $this->yystack[$this->yyidx];
        if (self::$yyTraceFILE && $yyruleno >= 0 
              && $yyruleno < count(self::$yyRuleName)) {
            fprintf(self::$yyTraceFILE, "%sReduce (%d) [%s].\n",
                self::$yyTracePrompt, $yyruleno,
                self::$yyRuleName[$yyruleno]);
        }

        $this->_retvalue = $yy_lefthand_side = null;
        if (array_key_exists($yyruleno, self::$yyReduceMap)) {
            // call the action
            $this->_retvalue = null;
            $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
            $yy_lefthand_side = $this->_retvalue;
        }
        $yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
        $yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
        $this->yyidx -= $yysize;
        for($i = $yysize; $i; $i--) {
            // pop all of the right-hand side parameters
            array_pop($this->yystack);
        }
        $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
        if ($yyact < self::YYNSTATE) {
            /* If we are not debugging and the reduce action popped at least
            ** one element off the stack, then we can push the new element back
            ** onto the stack here, and skip the stack overflow test in yy_shift().
            ** That gives a significant speed improvement. */
            if (!self::$yyTraceFILE && $yysize) {
                $this->yyidx++;
                $x = new c_lang_yyStackEntry;
                $x->stateno = $yyact;
                $x->major = $yygoto;
                $x->minor = $yy_lefthand_side;
                $this->yystack[$this->yyidx] = $x;
            } else {
                $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
            }
        } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
            $this->yy_accept();
        }
    }

    /**
     * The following code executes when the parse fails
     */
    function yy_parse_failed()
    {
        if (self::$yyTraceFILE) {
            fprintf(self::$yyTraceFILE, "%sFail!\n", self::$yyTracePrompt);
        }
        while ($this->yyidx >= 0) {
            $this->yy_pop_parser_stack();
        }
        /* Here code is inserted which will be executed whenever the
        ** parser fails */
#line 50 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"

    if ($this->debug_mode) {
        $this->dump_info .= "Parsing error.\n";
        $this->dump();
    }
    $this->success = false;
#line 3945 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
    }

    /**
     * The following code executes when a syntax error first occurs.
     * @param int The major type of the error token
     * @param mixed The minor type of the error token
     */
    function yy_syntax_error($yymajor, $TOKEN)
    {
#line 66 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"

    if ($this->debug_mode) {
        $this->dump_info .= "Syntax error.\n";
    }
#line 3961 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
    }

    /*
    ** The following is executed when the parser accepts
    */
    function yy_accept()
    {
        if (self::$yyTraceFILE) {
            fprintf(self::$yyTraceFILE, "%sAccept!\n", self::$yyTracePrompt);
        }
        while ($this->yyidx >= 0) {
            $stack = $this->yy_pop_parser_stack();
        }
        /* Here code is inserted which will be executed whenever the
        ** parser accepts */
#line 58 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.y"

    if ($this->debug_mode) {
        $this->dump_info .= "Parsing done.\n";
        $this->dump();
    }
    $this->success = true;
#line 3985 "/home/bioh/workspace/php/pashaevsergey-formallangs/blocks/formal_langs/langs_src/predefined/c_lang_parser.php"
    }

    /**
     *  The main parser program.
     * The first argument is a pointer to a structure obtained from
     * "c_lang_Alloc" which describes the current state of the parser.
     * The second argument is the major token number.  The third is
     * the minor token.  The fourth optional argument is whatever the
     * user wants (and specified in the grammar) and is available for
     * use by the action routines.
     *
     * Inputs:
     * 
     * - A pointer to the parser (an opaque structure.)
     * - The major token number.
     * - The minor token number (token value).
     * - An option argument of a grammar-specified type.
     *
     * Outputs:
     * None.
     * @param int the token number
     * @param mixed the token value
     * @param mixed any extra arguments that should be passed to handlers
     */
    function doParse($yymajor, $yytokenvalue, $extraargument = null)
    {
        if (self::c_lang_ARG_DECL && $extraargument !== null) {
            $this->{self::c_lang_ARG_DECL} = $extraargument;
        }
//        YYMINORTYPE yyminorunion;
//        int yyact;            /* The parser action. */
//        int yyendofinput;     /* True if we are at the end of input */
        $yyerrorhit = 0;   /* True if yymajor has invoked an error */
        
        /* (re)initialize the parser, if necessary */
        if ($this->yyidx === null || $this->yyidx < 0) {
            /* if ($yymajor == 0) return; // not sure why this was here... */
            $this->yyidx = 0;
            $this->yyerrcnt = -1;
            $x = new c_lang_yyStackEntry;
            $x->stateno = 0;
            $x->major = 0;
            $this->yystack = array();
            array_push($this->yystack, $x);
        }
        $yyendofinput = ($yymajor==0);
        
        if (self::$yyTraceFILE) {
            fprintf(self::$yyTraceFILE, "%sInput %s\n",
                self::$yyTracePrompt, self::$yyTokenName[$yymajor]);
        }
        
        do {
            $yyact = $this->yy_find_shift_action($yymajor);
            if ($yymajor < self::YYERRORSYMBOL &&
                  !$this->yy_is_expected_token($yymajor)) {
                // force a syntax error
                $yyact = self::YY_ERROR_ACTION;
            }
            if ($yyact < self::YYNSTATE) {
                $this->yy_shift($yyact, $yymajor, $yytokenvalue);
                $this->yyerrcnt--;
                if ($yyendofinput && $this->yyidx >= 0) {
                    $yymajor = 0;
                } else {
                    $yymajor = self::YYNOCODE;
                }
            } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
                $this->yy_reduce($yyact - self::YYNSTATE);
            } elseif ($yyact == self::YY_ERROR_ACTION) {
                if (self::$yyTraceFILE) {
                    fprintf(self::$yyTraceFILE, "%sSyntax Error!\n",
                        self::$yyTracePrompt);
                }
                if (self::YYERRORSYMBOL) {
                    /* A syntax error has occurred.
                    ** The response to an error depends upon whether or not the
                    ** grammar defines an error token "ERROR".  
                    **
                    ** This is what we do if the grammar does define ERROR:
                    **
                    **  * Call the %syntax_error function.
                    **
                    **  * Begin popping the stack until we enter a state where
                    **    it is legal to shift the error symbol, then shift
                    **    the error symbol.
                    **
                    **  * Set the error count to three.
                    **
                    **  * Begin accepting and shifting new tokens.  No new error
                    **    processing will occur until three tokens have been
                    **    shifted successfully.
                    **
                    */
                    if ($this->yyerrcnt < 0) {
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
                    }
                    $yymx = $this->yystack[$this->yyidx]->major;
                    if ($yymx == self::YYERRORSYMBOL || $yyerrorhit ){
                        if (self::$yyTraceFILE) {
                            fprintf(self::$yyTraceFILE, "%sDiscard input token %s\n",
                                self::$yyTracePrompt, self::$yyTokenName[$yymajor]);
                        }
                        $this->yy_destructor($yymajor, $yytokenvalue);
                        $yymajor = self::YYNOCODE;
                    } else {
                        while ($this->yyidx >= 0 &&
                                 $yymx != self::YYERRORSYMBOL &&
        ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
                              ){
                            $this->yy_pop_parser_stack();
                        }
                        if ($this->yyidx < 0 || $yymajor==0) {
                            $this->yy_destructor($yymajor, $yytokenvalue);
                            $this->yy_parse_failed();
                            $yymajor = self::YYNOCODE;
                        } elseif ($yymx != self::YYERRORSYMBOL) {
                            $u2 = 0;
                            $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
                        }
                    }
                    $this->yyerrcnt = 3;
                    $yyerrorhit = 1;
                } else {
                    /* YYERRORSYMBOL is not defined */
                    /* This is what we do if the grammar does not define ERROR:
                    **
                    **  * Report an error message, and throw away the input token.
                    **
                    **  * If the input token is $, then fail the parse.
                    **
                    ** As before, subsequent error messages are suppressed until
                    ** three input tokens have been successfully shifted.
                    */
                    if ($this->yyerrcnt <= 0) {
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
                    }
                    $this->yyerrcnt = 3;
                    $this->yy_destructor($yymajor, $yytokenvalue);
                    if ($yyendofinput) {
                        $this->yy_parse_failed();
                    }
                    $yymajor = self::YYNOCODE;
                }
            } else {
                $this->yy_accept();
                $yymajor = self::YYNOCODE;
            }            
        } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
    }
}